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

时间:2014-03-03 21:47:46

标签: python flask

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

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

如何正确完成?

谢谢。

1 个答案:

答案 0 :(得分:8)

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

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

例如,如果您在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的参数,因此在调用视图函数时,我们需要传入该参数的值。

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