在函数中或多个应用中使用SQLALCHEMY

如果你在一个函数中定义你的应用,而SQLALCHEMY是全局的,后者怎么得悉前者?答案是init_app()函数

from flask import Flask

from flask.ext.sqlalchemy import SQLAlchemy

db=SQLAlchemy()

def create_app():

    app=Flask(__name__)

    db.init_app(app)

    return app


因此,当在函数中或多个应用中使用sqlachemy时,可采用init_app函数

简而言之,像这样做:

>>>from yourapp import create_app

>>>app=create_app()

>>>app.test_request_context().push()

在脚本中,使用with声明也同样有意义:

def my_function():

    with app():
        user=db.User(...)

        db.session.add(user)

        db.session.commit()

Flask-SQLAlchemy里的一些函数也可以接受要操作的应用作为参数:

>>>from yourapp import db,create_app

>>>db.create_all(app=create_app())



你可能感兴趣的:(在函数中或多个应用中使用SQLALCHEMY)