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

Phi*_*hil 3 python flask

我有一个带有多个蓝图模块的应用程序.

我想从一个不同的蓝图路线中调用通常会返回视图或渲染模板的方法(路径).

怎么能正确完成?

谢谢.

Mar*_*ers 8

视图只是功能; 导入该函数并直接调用它,传入它可能已定义的任何路由参数.

蓝图的作用是更容易在一个公共前缀下注册一组路由,对其模板和静态资源进行分组,并处理该组的请求相关事件(请求已启动,请求已完成等).但是你如何调用一个视图并没有改变.

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

@foo.route('/bar/<id>')
def bar(id):
    return something_done_with_id(id)
Run Code Online (Sandbox Code Playgroud)

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

import foo

@baz.route('/spam/ham/eggs'):
def baz():
    return foo.bar(42)
Run Code Online (Sandbox Code Playgroud)

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

请注意,任何蓝图before_request,after_request并且context_processor功能不执行(即发生在路由时间),也不是有效的具体蓝图错误处理程序.