在flask中使用mysql

最近在看Miguel Grinberg写的《Flask Web开发》,看到数据库这一部分。
发现讲的是SQLAlchemy,感觉很是抽象,于是决定不跟着书上的这部分内容走了,改用Flask+MySQL。

1.安装Flask-MySQL模块

使用pip进行安装
pip install Flask-MySQL

2.创建测试表格

这里可以通过命令行创建,也可以通过GUI工具创建,只要达到目的就行。
我这里是在本地数据库进行的创建。创建sql脚本如下:

1
CREATE DATABASE flaskdata;
1
2
3
4
5
6
USE flaskdata;
CREATE TABLE `roles` (
`roleId` int(11) NOT NULL AUTO_INCREMENT,
`roleName` varchar(100) NOT NULL,
PRIMARY KEY (`roleId`)
);
1
2
3
4
5
6
7
8
USE flaskdata;
CREATE TABLE `users` (
`userId` int(11) NOT NULL AUTO_INCREMENT,
`userName` varchar(100) NOT NULL,
`passWord` varchar(40) NOT NULL,
`roleId` int(11) NOT NULL,
PRIMARY KEY (`userId`)
);

3.插入数据

1
2
3
4
5
6
INSERT INTO `flaskdata`.`roles`
(`roleId`,
`roleName`)
VALUES
(1,
'admin');
1
2
3
4
5
6
7
8
9
10
INSERT INTO `flaskdata`.`users`
(`userId`,
`userName`,
`passWord`,
`roleId`)
VALUES
(1,
'bigfire',
'123456',
1);

4.进行连接并查询

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from flask import Flask
from flaskext.mysql import MySQL

mysql = MySQL()
app = Flask(__name__)
app.config['SECRET_KEY'] = 'hard to guess string'
app.config['MYSQL_DATABASE_USER'] = 'root'
app.config['MYSQL_DATABASE_PASSWORD'] = ''
app.config['MYSQL_DATABASE_DB'] = 'FlaskData'
app.config['MYSQL_DATABASE_HOST'] = 'localhost'
mysql.init_app(app)

@app.route('/')
def index():
message = ''
cursor = mysql.connect().cursor()
cursor.execute("SELECT * from users where userName = 'bigfire' and passWord = '123456'")
data = cursor.fetchone()
if data is None:
message = 'wrong'
else:
message = 'right'
return message

if __name__ == '__main__':
app.run()

5.启动程序

启动该程序,访问localhost:5000 可以看到返回right