如何获取jinja2 / flask中的当前URL(request.url无法正常工作)

时间:2014-10-09 10:52:49

标签: python flask jinja2

有没有办法在Jinja2 / Flask中打印当前的URL?

E.g。如果当前网址为http://www.domain.com/example/1/2

{{ request.path }}工作并打印/example/1/2,但如何获取http://的完整网址?

来自文档(here) {{ request.url }}应该有效,但它不会产生任何效果。

由于

更新

以下是来自views.py的渲染/上下文args:

class EventDetailView(EventObjectMixin, FormView):
    template_name = 'gig/public/about.html'
    context_object_name = 'event'
    form_class = EventPurchaseTicketForm

    def get_context_data(self, **kwargs):
        context = super(EventDetailView, self).get_context_data(**kwargs)

    ...

        return context

4 个答案:

答案 0 :(得分:5)

您可以使用{{ url_for(request.endpoint) }},它有效。

答案 1 :(得分:2)

找到与此类似的代码,通常位于 controller.py __ init __。py views.py :< / p>

from flask import render_template
...

@app.route('/example/<arg1>/<arg2>')
def some_view_function(arg1, arg2):
    ...

    return render_template('path/to/your/template.html')

render_template()是您可以使用的请求和其他变量。

答案 2 :(得分:1)

对于那些路线需要额外参数的人,如@lfurini 所述,接受的答案将不太适用。

以下将在构造 URL 时使用视图的参数:

{{ url_for(request.endpoint, **request.view_args) }}

答案 3 :(得分:0)

flask.request对象提供了获取URL的不同方法。有关信息,请参见the documentation