我有一个包含多个蓝图模块的应用程序。
我想从不同蓝图的路由中调用通常会返回 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_request
、after_request
和 context_processor
函数都不会执行(在路由时发生),Blueprint-有效的特定错误处理程序。
关于python - 如何从 Flask 中的不同蓝图调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22158171/