Flask-sqlacodegen之ORM操作有两种方式:
1.模型迁移到数据库中生成表(codefirst):
需要flask-script:
from flask_script import Manager from flask_migrate import Migrate ,MigrateCommand from flask import Flask app = Flask(__name__) manager = Manager(app) # 注册App到脚本 Migrate(app,db) # 注册App和ORM对象 manager.add_command('db',MigrateCommand) # db为命令 即执行python manager.py db 命令
代码中编写models.py后执行命令
python app.py db init #初始化 python app.py db migrate #生成迁移脚本 python app.py db upgrade #映射到数据库
2.已经有建好的数据库及表,根据表反向生成model模型(dbfirst):
安装相关扩展包:pymysql、flask-sqlacodegen
pip install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install flask-sqlacodegen -i https://pypi.tuna.tsinghua.edu.cn/simple
使用window环境下:
# 整体映射database数据库并写入model.py文件
flask-sqlacodegen
mysql://username:password@127.0.0.1/database
--outfile 'model.py'
--flask
# 映射table数据表并写入table.py文件
flask-sqlacodegen
mysql://username:password@127.0.0.1/database
--table table
--outfile 'model.py'
--flask
事例如下:
第一步 flask-sqlacodegen mysql://root:123456@127.0.0.1:3306/pawnxc --outfile "models/model.py" --flask
第二步 #根据指定的表名,从数据库中反向成相应表 flask-sqlacodegen mysql://root:123456@127.0.0.1:3306/pawnxc --tables pawn_dl --outfile "models/dl.py" --flask #一次性从数据库中反向成所有表 flask-sqlacodegen mysql://root:123456@127.0.0.1:3306/pawnxc --outfile "models/model.py" --flask
注:models/model.py————models下的model.py文件在代码执行后自动生成