Концепция фабрики приложений не нова для Flask 1.0. Вам не нужно использовать фабрику, если ваше приложение не нуждается в ней.
Если вы используете фабрику приложений, обычно вы не регистрируете любые маршруты непосредственно в приложении. Вместо этого вы создаете чертеж, регистрируете маршруты к нему и на фабрике приложений присоединяете план к приложению.
Везде, где вам нужен доступ к конфигурации приложения, вы должны использовать прокси current_app
.
Например, в модуле views.py
в вашем приложении вы можете создать план только для представлений; Я включил пример использования current_app
для доступа к конфигурации:
from flask import Blueprint, current_app
bp = BluePrint('main', __name__)
@bp.route(...)
def some_route_name(...):
# ...
if current_app.config['SOME_CONFIGURATION_SETTING']:
# ...
и вы зарегистрируете план с помощью
def create_app(config_filename=None):
app = Flask(__name__)
# configuration setup, use the confuration module as a default
from . import configuration
app.config.from_object(config)
app.config.from_envvar("PROJECTNAME_SETTINGS", silent=True)
if config_filename is not None:
app.config.from_pyfile(config_filename)
from . import views
app.register_blueprint(views.bp)
# other registrations
return app