flask进行数据库操作首先要安装几个扩展包
1、pip install flask-sqlalchemy
2、pip install flask-MySQLdb
3、pip install flask-migrate
4、pip iinstall flask-script
一、配置sqlalchemy
SQLALCHEMY_DATABASE_URI就是自己的数据库的路径
root:用户名
123456:密码
127.0.0.1:IP地址,如果是远程数据库就是远程的地址
3306:端口,默认是3306
flask01:数据库名称
app.config['SQLALCHEMY_DATABASE_URI'] ='mysql://root:123456@127.0.0.1:3306/flask01'
二、创建模型类
__tablename__是数据库中表的名称
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(20), unique=True)
email = db.Column(db.String(30), nullable=True)
is_delete = db.Column(db.Boolean, default=True)
三、迁移
将模型类映射成数据库的表。
第一种方法:不使用flask-migrate插件
1、创建数据库操作句柄
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy(app)
2、生成数据库表格
这种情况下只能生成一次
db.create_all()
第二种方法:使用flask-migrate和flask-script插件
flask-migrate是迁移数据库的插件
flask-script是命令行管理工具
1、创建manager对象实例
from flask_script import Manager
manager = Manager(app, db)
2、创建migrate对象实例并添加命令
from flask_migrate import MigrateCommand, Migrate
# 添加命令,取名为db_command
manager.add_command('db_command', MigrateCommand)
# 创建migrate,将app应用和数据库操作句柄联系在一起
migrate = Migrate(app, db)
此时启动项目使用manager
if __name__ == '__main__':
manager.run()
四、生成迁移文件
命令行终端操作
1、生成迁移文件仓库
db_command就是我们自己添加的命令
项目目录下生成的仓库
2、生成迁移文件
生成数据库表格
flask-migrate还支持回滚操作
查看历史版本
回滚到历史版本(因为当前就是最初的版本,所以无法回退)