flask拆分資料庫模型
阿新 • • 發佈:2018-12-10
-
為何要拆分資料庫模型? 如果將所有模型寫在一個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')