1. 程式人生 > >flask拆分資料庫模型

flask拆分資料庫模型

  • 為何要拆分資料庫模型? 如果將所有模型寫在一個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')