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

Flask-SQLAlchemy导入/上下文问题

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

Flask-SQLAlchemy导入/上下文问题

flask_sqlalchemy
模块没有要与应用程序马上初始化-你可以这样做,而不是:

# apps.members.modelsfrom flask_sqlalchemy import SQLAlchemydb = SQLAlchemy()class Member(db.Model):    # fields here    pass

然后在应用程序设置中,你可以调用init_app:

# apps.application.pyfrom flask import Flaskfrom apps.members.models import dbapp = Flask(__name__)# later ondb.init_app(app)

这样可以避免周期性导入。

这种模式并没有必要在你把你所有的车型在一个文件中。只需将db变量导入每个模型模块即可。

# apps.shared.modelsfrom flask_sqlalchemy import SQLAlchemydb = SQLAlchemy()
# apps.members.modelsfrom apps.shared.models import dbclass Member(db.Model):    # TODO: Implement this.    pass
# apps.reporting.membersfrom flask import render_templatefrom apps.members.models import Memberdef report_on_members():    # TODO: Actually use arguments    members = Member.filter(1==1).all()    return render_template("report.html", members=members)
# apps.reporting.routesfrom flask import Blueprintfrom apps.reporting.members import report_on_membersreporting = Blueprint("reporting", __name__)reporting.route("/member-report", methods=["GET","POST"])(report_on_members)
# apps.applicationfrom flask import Flaskfrom apps.shared import dbfrom apps.reporting.routes import reportingapp = Flask(__name__)db.init_app(app)app.register_blueprint(reporting)

注意:这是一些功能的草图 -显然,你可以做很多事来简化开发工作(使用create_app模式,在某些文件夹中自动注册蓝图等)。



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

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

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