与大多数Flask扩展一样,Flask-
SQLAlchemy扩展应在工厂外部创建,然后在工厂中使用进行初始化
init_app。这样,您就可以
db在创建应用之前使用该对象。
db = SQLAlchemy()def create_app(): app = Flask(__name__) db.init_app(app) return app
与任何适当设计的Python项目一样,您的Flask应用应为可安装的程序包。这很容易做到:确保您的项目布局合理,然后添加一个基本
setup.py文件。
project/ my_flask_package/ __init__.py # at the most basic, this contains create_app and db setup.pyfrom setuptools import setup, find_packagessetup( name='my_flask_package', version='1.0', packages=find_packages(), install_requires=['flask', 'flask-sqlalchemy'],)$ python setup.py sdist
现在,您可以安装Flask应用程序及其数据库,以供其他项目使用。将其安装并导入到第二个项目的virtualenv中,然后创建并推送应用以对其进行初始化。
$ pip install my_flask_package-1.0.tar.gzfrom my_flask_package import db, create_appcreate_app().app_context().push()db.session.query(...)
如果您担心创建应用程序涉及的开销,则可以在
create_app函数中添加参数以控制初始化的内容。在大多数情况下,这应该不是问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)