使用sqlalchemy自动创建数据库表

需求如标题,废话不多说,直接上代码,本篇使用的flask+postgresql组合。

引入flask_script库

需要使用pip进行安装:

1
pip install flask-script

使用时需要注意,原有的flask.ext.script已经废弃,请使用flask_script代替。

创建manage.py文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from flask_script import Manager, Server
from app import app, db
from app.model import user, notify

manager = Manager(app)

manager.add_command("server", Server())


@manager.shell
def make_shell_context():
return dict(app=app, db=db, User=user.User, CfgNotify=notify.CfgNotify)


if __name__ == "__main__":
manager.run()

以后每创建一个model都要加到make_shell_context方法的dict中。

自动添加数据库表

进入shell:

1
2
python3 manage.py shell
>> db.create_all()

这样就会根据数据库配置,自动创建表结构