我想用Flask-Migrate,我期待他們的例子:如何在不傳遞數據庫對象的情況下將Flask模型從app.py中分離出來?
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.script import Manager
from flask.ext.migrate import Migrate, MigrateCommand
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db'
db = SQLAlchemy(app)
migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command('db', MigrateCommand)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(128))
if __name__ == '__main__':
manager.run()
這是一個簡單的遊戲例子的偉大工程,但我有比單一模型更多,我不想定義模型在這個腳本和定義我的應用程序代碼的腳本中。因此,我想將它們拖入一個模型文件,我可以在兩者之間共享。
我試圖做到這一點,將User
類放入models.py
,然後從那裏導入用戶。不幸的是,這拋出了一個NameError: name 'db' is not defined
。
我的問題(S)是:
- 我需要在我的
models.py
使用db = SQLAlchemy(app)
,如果這樣將本可在我的兩個遷移腳本和燒瓶應用程序本身? - 如果我不能(或不應該)把它放在
models.py
中,我怎麼在不通過db
的情況下在自己的文件中使用我的模型?
看看https://realpython.com/blog/python/python-web-applications-with-flask-part-ii/ – PetarP