Python, Flask: Importing functions and variables inside blueprint
如何在
1 2 | def main(): <..> |
江户十一〔一〕号
1 2 | from flask import Blueprint blueprint = Blueprint('blueprint', __name__, template_folder='templates') |
号
埃多克斯1〔2〕
1 2 | import blueprint import main |
我读了威尔·克罗克斯福德建议的博客,下面是我的问题的解决方案:
应用程序/蓝图/视图.py
1 2 | from app import main from app.blueprint import blueprint |
。
1 2 | from app.__init__ import * from app.blueprint.__init__ import * |
应该从两个文件中导入所有函数和变量。
但是,尽管我不认为init文件应该用于此目的。
下面是我使用我的项目的flask蓝图的例子,从udemy教程中学习了结构,我认为这个想法通常是使用init文件将一个python目录制作成一个包,这样您就可以导入其中的内容。您最好使用您想要导入的函数(不太常见的变量)创建新的文件,也许专家会确认,但我认为通常情况下,除非您真正知道自己在做什么,否则您会将python init文件留空。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | from flask import Flask, render_template from Source.common.database import Database from Source.models.users.views import user_blueprint from Source.models.street_lists.views import street_list_blueprint # from Source.models.street_reports.views import street_report_blueprint __author__ ="Will Croxford, with some base structure elements based on Github: jslvtr, \ from a different tutorial web application for online price scraping" app = Flask(__name__) app.config.from_object('Source.config') app.secret_key ="123" app.register_blueprint(user_blueprint, url_prefix="/users") app.register_blueprint(street_list_blueprint, url_prefix="/streetlists") # app.register_blueprint(street_report_blueprint, url_prefix="/streetreports") @app.before_first_request def init_db(): Database.initialize() @app.route('/') def home(): return render_template('home.jinja2') @app.route('/about_popup.jinja2') def info_popup(): return render_template('about_popup.jinja2') |
号
烧瓶视图文件示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # In this model, views.py files are the Flask Blueprint for this object. # ie they describe what HTTP API endpoints are associated to objects of this class. from flask import Blueprint, render_template, request, redirect, url_for from Source.models.street_lists.street_list import StreetList __author__ = 'jslvtr' street_list_blueprint = Blueprint('street_lists', __name__) @street_list_blueprint.route('/') def index(): prop_query = StreetList.get_from_mongo(streetpart="bum") return render_template('street_lists/street_list.jinja2', stores=prop_query) |
您可以查看pocoo.org flask doc示例,并搜索其他so问题以查找我认为的flask蓝图模板示例。祝你好运!