gpt4 book ai didi

python - 我们可以在单独的模块中使用 Flask 错误处理程序吗

转载 作者:太空狗 更新时间:2023-10-29 22:22:27 25 4
gpt4 key购买 nike

我们正在将我们的 Flask 应用程序从基于函数的 View 迁移到可插入 View ,除错误处理程序外,一切都按预期工作。我试图将所有错误处理程序放在一个名为 error_handlers.py 的模块中,并将其导入到主模块中。但它不起作用。尝试在 Google 中搜索并按照相同的方式找到一些 Git 存储库,但它对我不起作用,请帮助我解决此问题。

app
|
|__ __init__.py
|__ routing.py (which has the app=Flask(__name__) and imported error handlers here [import error_handlers])
|__ views.py
|__ error_handlers.py (Ex: @app.errorhandler(FormDataException)def form_error(error):return jsonify({'error': error.get_message()})
|__ API (api modules)
|
|
|__ __init__.py
|__ user.py

我正在使用 Python 2.6 和 Flask 0.10.1。

最佳答案

虽然您可以使用一些 circular imports 来做到这一点,例如:

应用.py

import flask

app = flask.Flask(__name__)

import error_handlers

error_handlers.py

from app import app

@app.errorhandler(404)
def handle404(e):
return '404 handled'

显然,这在更复杂的场景中可能会变得棘手。

Flask 有一种干净灵活的方式来从多个模块组成应用程序,这是一个概念 blueprints .使用 flask.Blueprint 注册错误处理程序您可以使用其中之一:

例子:

error_handlers.py

import flask

blueprint = flask.Blueprint('error_handlers', __name__)

@blueprint.app_errorhandler(404)
def handle404(e):
return '404 handled'

应用.py

import flask
import error_handlers

app = flask.Flask(__name__)
app.register_blueprint(error_handlers.blueprint)

两种方式都一样,看哪种方式更适合你。

关于python - 我们可以在单独的模块中使用 Flask 错误处理程序吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24859014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com