【发布时间】:2018-01-04 06:11:22
【问题描述】:
在应用工厂内部定义共享请求钩子可以吗?
def create_app(config_name):
app = Flask(__name__)
app.config.from_object(config[config_name])
db.init_app(app)
csrf.init_app(app)
login_manager.init_app(app)
babel.init_app(app)
@app.before_request
def before_request_callback():
if request.view_args and 'locale' in request.view_args:
if request.view_args['locale'] not in app.config['SUPPORTED_LOCALES']:
return abort(404)
g.locale = request.view_args['locale']
request.view_args.pop('locale')
from . app_area__main import main as main_blueprint
app.register_blueprint(main_blueprint)
from . app_area__admin import admin as admin_blueprint
app.register_blueprint(admin_blueprint, url_prefix='/admin')
【问题讨论】:
-
Blueprint也有before_app_request装饰器。 -
@stamaimer 你的意思是我应该在我的蓝图中从一个单独的模块中引用它/有一个共享的函数来装饰?
标签: python flask architecture