版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_38125866/article/details/82749053
-
为何要拆分数据库模型?
如果将所有模型写在一个py文件中,model过多的话不方便管理,且有些关联性不强,没必要挤在一起。 -
如果仅仅是简单的将model分开几个文件写的话,因为flask的机制,会面临很多问题。
-
如何合理的拆分model.
-
项目目录结构:
-
首先实现一个基类
#_*_coding:utf-8_*_
'''
>author:classmate Lin
>email:[email protected]
>create_time:2018.09.17
'''
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class Base(db.Model):
__abstract__ = True
#这里可以实现需要的功能。
- 子类继承基类
#_*_coding:utf-8_*_
'''
>author:classmate Lin
>>email:[email protected]
>create_time:2018.09.16
'''
from app.models.base import Base, db
class User(Base):
id = db.Column(Integer, primary_key=True)
nickname = db.Column(String(24), nullable=False)
- 注册db的函数
#_*_coding:utf-8_*_
'''
>author:classmate Lin
>>email:[email protected]
>create_time:2018.09.16
'''
def register_db(app):
db.init_app(app)
with app.app_context():
db.create_all()
- 在创建app的工厂函数中调用register_db即可。
def create_app():
app = Flask(__name__)
register_db(app)
return app
app = create_app()
app.run(host='0.0.0.0')