栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Flask和其他应用程序之间共享SQLAlchemy模型

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Flask和其他应用程序之间共享SQLAlchemy模型

与大多数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
函数中添加参数以控制初始化的内容。在大多数情况下,这应该不是问题。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/624699.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号