前提
- 了解
Flask的基本使用
MySql
一、安装 MySql
略
二、Flask 配置 SQL
Flask 的一个插件: Flask-SQLAlchemy ,它能够将对象和 MySql进行映射。
pipenv install flask-sqlalchemy
三、配置文件
在项目文件中,创建 config.py ,在里面配置数据库的信息。具体配置字段: https://flask-sqlalchemy.palletsprojects.com/en/2.x/config/
USERNAME = 'root'
PASSWORD = 'root'
HOST = '127.0.0.1'
PORT = 3306
DATABASE = 'db_test'
# 数据库链接 URI
DB_URI = 'mysql+mysqldb://{}:{}@{}:{}/{}'.format(USERNAME, PASSWORD, HOST, PORT, DATABASE)
SQLALCHEMY_DATABASE_URI = DB_URI
SQLALCHEMY_TRACK_MODIFICATIONS = True # 配置修改追踪
这里使用了 mysqldb ,通过一下命令安装:
pipenv install mysqlclient
创建数据库 db_test :
mysql> create database db_test;
四、连接测试
在 app.py 中引用相关配置,创建数据库对象:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import config
app = Flask(__name__)
# 使用配置
app.config.from_object(config)
# 实例化数据库对象
db = SQLAlchemy(app)
# 调用 db 的 create_all() 方法
db.create_all()
@app.route('/')
def index():
return '这是首页!!'
if __name__ == '__main__':
app.run(debug=True)
运行 app.py :
pipenv shell
python app.py
如果不报错,说明数据库连接成功。
五、对数据的增删改查
假设我们需要一个数据表用来存储自己的健身数据,运动的项目名、时间、卡路里等。
那我们可以创建一个类 Model ,定义相关字段。
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import config
app = Flask(__name__)
# 使用配置
app.config.from_object(config)
# 实例化数据库对象
db = SQLAlchemy(app)
class Fitness(db.Model):
__tablename__ = 'fitness'
id = db.Column(db.Integer, primary_key=True)
sport_name = dc.Column(db.String(100))
calorie = db.Column(db.Float)
@app.route('/')
def index():
return '这是首页!!'
if __name__ == '__main__':
app.run(debug=True)
在上面,我们定义了 Fitness 类,继承了 Model,其中:
__tablename__ 指定表名
sport_name 指定运动名称
calorie 指定卡路里
通过 db.create_all() 将数据模型直接创建到 MySql 中。这里通过命令行的方式进行演示:

增
>>> from mysystem.app import db, Fitness
>>> db.create_all()
>>> fit1 = Fitness(sport_name='up', calorie=100)
>>> fit2 = Fitness(sport_name='down', calorie=200)
>>> db.session.add(fit1)
>>> db.session.add(fit2)
>>> db.session.commit()

查
查所有数据:
>>> Fitness.query.all()
[<Fitness 1>, <Fitness 2>]
查询具体的数据
>>> fit2 = Fitness.query.get(2)
>>> print(fit2.sport_name)
'down'
查询多少条数据:
>>> Fitness.query.count()
2
改
>>> from mysystem.app import db, Fitness
>>> fit2 = Fitness.query.get(2)
>>> fit2.sport_name
'up'
>>> fit2.sport_name = 'updown'
>>> db.session.commit()

删
>>> fit1 = Fitness.query.get(1)
>>> db.session.delete(fit1)
>>> db.session.commit()

总结
本文通过 flask-sqlalchemy 对数据库进行了一些简单的操作。作为了解知识,不纳入项目一部分。
- 配置
- 连接
- 数据的增删改查
后面还会讲到数据表之间的关联。
原创
python打造个人管理系统05-Flask中MySql的配置
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法