Flask 根据数据表生成模型类(逆向工程)

Flask-sqlacodegen

数据库脚本参考

MySQL版 emp 数据库

安装依赖

shell 复制代码
pip install flask-sqlacodegen

运行命令

shell 复制代码
flask-sqlacodegen "mysql+pymysql://用户名:密码@127.0.0.1/数据库名" --tables 表1,表2 --outfile "自定义文件名.py" --flask  

使用emp 作为案例
flask-sqlacodegen "mysql+pymysql://root:root@127.0.0.1/emp" --tables emp,dept,salgrade --outfile "models.py" --flask  

使用Python代码操作shell 命令

新建test.py

python 复制代码
import os
def create_models():
    db_url = "mysql+pymysql://root:root@localhost:3306/emp?charset=utf8mb4"
    project_path = os.getcwd()
    print(project_path)
    model_path = os.path.join(project_path, 'models.py')
    cmd = 'flask-sqlacodegen --flask {}'.format(db_url)
    try:
        output = os.popen(cmd)
        resp = output.buffer.read().decode(encoding='utf-8')
        content = str(resp)
        output.close()
        # w+ 读写权限
        with open(model_path, 'w+', encoding='utf-8') as f:
            f.write(content)
        print('create models successfully!')
    except Exception as e:
        print(e)


if __name__ == '__main__':
    create_models()

不使用 Flask

sqlacodegen

shell 复制代码
pip install sqlacodegen

运行shell 命令

shell 复制代码
# sqlacodegen --tables third_api "mysql+pymysql://username:password@host/db_name" >tmp.py
sqlacodegen --tables emp,dept "mysql+pymysql://root:root@localhost/emp" >test.py
相关推荐
luoluoal2 小时前
基于python图像信息隐藏技术设计(源码+文档)
python·mysql·django·毕业设计·源码
山土成旧客2 小时前
【Python学习打卡-Day31】项目架构师之路:告别杂乱脚本,拥抱工程化思维
开发语言·python·学习
多吃蔬菜!!!2 小时前
pybullet.addUserDebugLine
python
唐叔在学习2 小时前
PyWebView 移动端适配踩坑实录
后端·python
Penge6662 小时前
为什么有了物理表,还需要逻辑表?这4个核心场景讲透
后端
用户9446814013502 小时前
面试官:介绍一下SYN泛洪是什么?
后端
2501_944452232 小时前
关于应用 Cordova 与 OpenHarmony 混合开发实战
python
梦想的旅途22 小时前
企业微信 API 触达外部群的深度实践(Java/Go/Python)
开发语言·python