Flask-sqlacodegen之ORM操作

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文件在代码执行后自动生成
原文地址:https://www.cnblogs.com/hzjdpawn/p/12484792.html