我的应用程序有一个应用程序工厂模式,如下所示:
def create_app(environment):
# ...
from root import root
from charts import user_charts, download_charts
app.register_blueprint(root)
app.register_blueprint(user_charts, url_prefix='/charts/user')
app.register_blueprint(download_charts, url_prefix='/charts/downloads')
return app
根有一个专门用于应用程序的错误处理程序,因为它是根蓝图
@root.app_errorhandler(404)
def not_found(e):
return render_template('404.html'), 404
如果他们试图访问一个根本不存在的页面,这是很好的。但是,在前缀为/chart
的url上,前端向后端发出json对象的请求。我希望在所有这些路径上都有一个统一的处理程序,这比在每个蓝图上显式注册要简单,因为大约有10个。我不想那样做。相反,我想要这样的东西:
@(all routes prefixed with '/chart').errorhandler(404)
def chart_not_found(e):
return jsonify({
'error': e,
'message': e.get_description()
})
然而,问题是有许多以“/charts”为前缀的蓝图。你知道吗
有没有办法跨多个共享前缀的url注册相同的错误处理程序,而不是在每个蓝图上重复它?你知道吗
只需在初始化时注册即可:
您甚至可以创建一个模块级变量,列出所有图表蓝图,然后使用
for
:相关问题 更多 >
编程相关推荐