首先需要先安装flask-sqlacodegen。

然后在工程目录下执行此命令:

  1. flask-sqlacodegen "mysql+pymysql://xx:passwd@host/schema_name" --tables user --outfile " models.py" --flask

这里的—tables user是指定特定表使用的,如不添加此参数,则可以生成所有的models

自动生成Model

1、通过数据库表结构生成orm的model,使用flask-sqlacodegen

使用flask-sqlacodegen自动生成model - 图1

在根目录下执行命令,flask-sqlacodegen需要在环境变量中:
flask-sqlacodegen “mysql+pymysql://xx:passwd@host/schema_name” —tables user —outfile “common/models/user.py” —flask
执行完毕后,出现了这么一组warning:

  1. c:\programdata\anaconda3\lib\site-packages\pymysql\cursors.py:170: Warning: (1287, "'@@tx_isolation' is deprecated and will be removed in a future release. Please use '@@transaction_isolation' instead")
  2. result = self._query(query)

执行完毕后,发生了一件很神奇的事情:
使用flask-sqlacodegen自动生成model - 图2
自动重写了我的user.py文件
但是老师说这里指定把上面的这些东西删掉,然后改为:
使用flask-sqlacodegen自动生成model - 图3

这就通过数据库生成了orm的model表结构。

2、通过model生成数据库表结果
引入User文件
db.Model = User
db.create_all()
使用flask-sqlacodegen自动生成model - 图4
这里的db.create_all()老师是在启动文件中使用的。