获取从Flask URL解析的变量

时间:2014-02-20 23:22:17

标签: flask

假设我有一个带有可变部分的简单路线:

@app.route('/post/<int:post_id>')
def show_post(post_id):
    return 'Post %d' % post_id

现在我想注册

的上下文处理器
  1. 仅在使用post_id作为参数
  2. 调用视图函数时运行
  3. 以某种方式可以访问post_id,而无需重新解析网址,例如re.match
  4. 基本上:

    @app.context_processor
    def foo():
        post_id = ???
        return {'bar': some_function(post_id)}
    

    如果我可以从来自的上下文处理器中访问传递给**kwargs的{​​{1}}我可以做到,但我发现无法做到那。有什么想法吗?

1 个答案:

答案 0 :(得分:10)

使用request.view_args

@app.context_processor
def provide_foo():
    if "post_id" in request.view_args:
        post_id = request.view_args["post_id"]
        return {"bar": some_function(post_id)}