Flask中使用mysql

Flask中使用mysql

先安装相关模块

pip  install  Flask-MySQL

先准备一下数据库

登录:

mysql  -u  root  -p

创建Database和创建Table

mysql> CREATE DATABASE EmpData;
mysql> use EmpData;
mysql> CREATE TABLE User(
 userId INT NOT NULL AUTO_INCREMENT,
 userName VARCHAR(100) NOT NULL,
 password VARCHAR(40) NOT NULL,
 PRIMARY KEY(userId)
 );
插入数据:
mysql> insert into User values(‘‘,‘Admin‘,‘admin‘);
 
现在,让我们回到hello.py并尝试使用flask-mysql连接MySQL。 首先,通过在hello.py中导入它来初始化扩展,如下所示:
from flask import Flask
from flaskext.mysql import MySQL

mysql = MySQL()
app = Flask(__name__)
app.config[‘MYSQL_DATABASE_USER‘] = ‘root‘
app.config[‘MYSQL_DATABASE_PASSWORD‘] = ‘root‘
app.config[‘MYSQL_DATABASE_DB‘] = ‘EmpData‘
app.config[‘MYSQL_DATABASE_HOST‘] = ‘localhost‘
mysql.init_app(app)

@app.route("/")
def hello():
    return "Welcome to Python Flask App!"

if __name__ == "__main__":
    app.run()
 
我们将使用cuesor从数据库访问数据,可以使用mysql对象创建一个。我们还可以添加一个叫Authenticate的方法,来验证登录过程,所以添加下面代码:
@app.route("/Authenticate")
def Authenticate():
    username = request.args.get(‘UserName‘)
    password = request.args.get(‘Password‘)
    cursor = mysql.connect().cursor()
    cursor.execute("SELECT * from User where Username=‘" + username + "‘ and Password=‘" + password + "‘")
    data = cursor.fetchone()
    if data is None:
     return "Username or Password is wrong"
    else:
     return "Logged in successfully"
测试
python hello.py
假如我们在浏览器输入了错误的数据库数据(UserName和Password),比如:
http://127.0.0.1:5000/Authenticate?UserName=jay&Password=jay
浏览器会提示错误:
Username or Password is wrong
输入数据库内的数据:
http://127.0.0.1:5000/Authenticate?UserName=Admin&Password=admin
显示:
Logged in successfully.
 
不过前面都只是简单的操作数据库,如果没有配合参数过滤,容易遇到sql注入的危险,应该注意
 
 
 
 
时间: 2025-01-04 16:07:00

Flask中使用mysql的相关文章

在Flask中使用mySQL

在"FlaskWeb开发:基于Python的Web应用开发实战"一书中,作者为了简便以及更侧重于Flask而不是数据库的说明,所以书中使用了SQLite数据库. 但是实际应用中mySQL应该更广泛一些.所以尝试使用mySQL替代书中原代码中SQLite数据库的功能. 平台说明: Ubuntu 16.04 4.8.0-36-generic (安装在VMware上) 第一个需要注意的就是,与SQLite不同的是,Flask-SQLAlchemy并不会为mySQL主动去建立一个databas

Flask 中 @app.before_request、@app.after_request 和 @app.teardown_request

Flask 中 @app.before_request.@app.after_request 和 @app.teardown_request flask中又两种 context(上下文),分别是 application context 和 request context. 其中 request 就是 request context.当 HTTP 请求过来的时候,进入这个上下文. 题主的那些方法都是一些 flaks 的 hooks.用于针对 request 做一些操作,比如 before_requ

整合Flask中的目录结构

一.SQLAlchemy-Utils 由于sqlalchemy中没有提供choice方法,所以借助SQLAlchemy-Utils组件提供的choice方法 import datetime from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String, Text, ForeignK

flask框架----整合Flask中的目录结构

一.SQLAlchemy-Utils 由于sqlalchemy中没有提供choice方法,所以借助SQLAlchemy-Utils组件提供的choice方法 import datetime from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String, Text, ForeignK

flask 中的常用组件的使用 ,virtualenv组件和 pipreqs组件

一  . flask 中连接的数据库的组件 DButils #!/usr/bin/env python # -*- coding:utf-8 -*- import pymysql from DBUtils.PooledDB import PooledDB, SharedDBConnection POOL = PooledDB( creator=pymysql, # 使用链接数据库的模块 maxconnections=20, # 连接池允许的最大连接数,0和None表示不限制连接数 mincach

Flask中的session ,自定义实现 session机制, 和 flask-session组件

session 是基于cookie实现, 保存在服务端的键值对(形式为 {随机字符串:‘xxxxxx’}), 同时在浏览器中的cookie中也对应一相同的随机字符串,用来再次请求的 时候验证: 注意 :Flask中的session是存在浏览器中 默认key是session(加密的cookie), 也可以像Django一样基于上述的方式实现保存在数据库 1 flask中 session的基本概念 flask 有一个 session 对象.它允许你在不同请求间存储特定用户的信息.它是在 Cookie

flask 中的ORM

1 响应(response) 1 什么是响应 响应就是由服务器端带给客户端的内容,对应着请求,响应可以是普通的字符串,模板 或重定向 return '普通字符串' return render_template('xxx.html') 2 响应对象 响应对象:将响应的内容封装到一个对象中,可以完成更多的响应的行为(如:增加cookies,..) 在Flask中,使用 make_response() 构建响应对象 2 文件上传 1 注意问题 表单中如果有文件上传的话,必须遵循以下两个要求 1 提交方

使用Flask来实现mysql的基本操作与cp源码出售

为了简化数据库操作,cp源码出售[企鹅21717-93408]我们将使用SQLAlchemy一个数据库工具(ORM,即对象关系映射).借助SQLAlchemy,你可以通过定义Python类来表示数据库里的一张表(类属性表示表中的字段/列),通过对这个类进行各种操作来代替写SQL语句.这个列我们称之为模型类,类中的属性我们将称之为字段. Flask有大量的第三方扩展,这些扩展可以简化和第三方库的集成工作. 首先我们要"初始化"操作.导入扩展类,实例化并传入Flask程序实例:from f

Flask学习【第11篇】:整合Flask中的目录结构

SQLAlchemy-Utils 由于sqlalchemy中没有提供choice方法,所以借助SQLAlchemy-Utils组件提供的choice方法 import datetime from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, String, Text, ForeignKey