python - 如何从 Flask 中的不同蓝图调用方法?

标签 python flask

我有一个包含多个蓝图模块的应用程序。

我想从不同蓝图的路由中调用通常会返回 View 或呈现模板的方法(路由)。

如何正确地做到这一点?

谢谢。

最佳答案

View 只是函数;导入函数并直接调用它,传入它可能已定义的任何路由参数。

Blueprint 的作用是更容易在公共(public)前缀下注册一组路由,将它们的模板和静态资源分组,并仅为该组处理与请求相关的事件(请求开始、请求完成等)。 ).但是您调用 View 的方式不会改变。

例如,如果您在 foo 蓝图中有一个路由,则在 foo.py 模块中:

@foo.route('/bar/<id>')
def bar(id):
    return something_done_with_id(id)

您可以导入该函数并在其他地方使用它:

import foo

@baz.route('/spam/ham/eggs'):
def baz():
    return foo.bar(42)

这里的 bar 从 URL 中获取一个名为 id 的参数,因此在调用 View 函数时我们确实需要为该参数传入一个值。

请注意,任何蓝图 before_requestafter_requestcontext_processor 函数都不会执行(在路由时发生),Blueprint-有效的特定错误处理程序。

关于python - 如何从 Flask 中的不同蓝图调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22158171/

相关文章:

python - 为什么 pip 在 PyCharm 之外无法工作

python - Pandas 数据框中单元格中的条件更改值

python - 如何在python中为labview应用程序实现看门狗

python - 在 Excel 或 Python 中将数字除以日期

python - Flask、Marshmallow 3 和 webargs use_args 无法解析参数

python - Flask python 设置 : oauthlib version problems while installing

html - 左对齐标题到 <ul> 的右边界

python - 从 FLASK 应用程序运行 Celery Worker

python - 使用 Python 按行号将大文本文件拆分为较小的文本文件

python - 运行 FlaskClient 测试方法时出现 404 响应