如何根据需要定义flask-sqlalchemy对象?

时间:2014-06-08 21:45:29

标签: python class sqlalchemy runtime

我有一个模块,我想用它来处理对生产和测试数据库的数据库访问。

内容如下:

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对象访问它?

1 个答案:

答案 0 :(得分:2)

我现在通过:

解决了
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