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
相关推荐
子兮曰1 小时前
把 649 种文件格式塞进一个网页里:一个「文件不出浏览器」的预览器
前端·javascript·后端
kobe_OKOK_3 小时前
__getattr__和__getattribute__如何用
python
全栈弄潮儿4 小时前
Python实战第2期: 变量与数据类型
后端·python·agent
长沙三为智能科技4 小时前
家政小程序门店运营模块设计:会员、下单、派单、结算四段链路的落地拆解
python·小程序·内容运营
Cc.Y4 小时前
Java零基础入门:可变字符串与包装类:StringBuilder、StringBuffer 与 通讯录管理系统实战
java·开发语言·python
启观川4 小时前
数据结构与算法 -第 3 章 常用算法-动态规划
数据结构·笔记·python·算法
码爸4 小时前
排序算法介绍
python·算法·排序算法
笔墨登场说说4 小时前
flink bin/start-cluster.sh 帮我做成开机启动
开发语言·python
码事漫谈5 小时前
五道题,测测你有没有真的入门 AI
后端