簡體   English   中英

如何按需定義flask-sqlalchemy對象?

[英]How to define flask-sqlalchemy objects on demand?

我有一個模塊,希望用於處理對生產數據庫和測試數據庫的數據庫訪問。

內容如下所示:

class FirstModel(db.Model):
    #...
class SecondModel(db.Model):
    #...

def get_production_connection():
    app = Flask(__name__)
    app.config['SQLALCHEMY_DATABASE_URI'] = PRODUCTION_DATABASE_URI
    db = SQLAlchemy(app)
    return db

def get_test_connection():
    app = Flask(__name__)
    app.config['SQLALCHEMY_DATABASE_URI'] = TEST_DATABASE_URI
    db = SQLAlchemy(app)
    return db

不幸的是,這是行不通的,因為定義的模型繼承自db.Model ,當評估類時, db.Model顯然沒有定義。 有什么方法可以使類/模型從db.Model類繼承,該類只能在調用上述方法之一時才能通過db對象訪問?

我現在通過以下方式解決了它:

db = SQLAlchemy()

#models here

def create_app():
    app = Flask(__name__)
    #db configuration
    db.init_app(app)
    return db

如此處所示http://pythonhosted.org/Flask-SQLAlchemy/api.html#flask.ext.sqlalchemy.SQLAlchemy

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM