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

ali*_*s51 21 python jinja2 flask

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

例如,如果当前URL是 http://www.domain.com/example/1/2

{{ request.path }}工作和打印/example/1/2,但如何获得http://的完整URL?

从文档(这里){{ request.url }}应该工作,但它不会产生任何东西.

谢谢

UPDATE

以下是来自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
Run Code Online (Sandbox Code Playgroud)

小智 14

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

  • 请注意,如果与 `request.endpoint` 关联的路由需要一些参数,则会出现错误。这个[对类似问题的回答](/sf/answers/1750919901/) 提供了一个更好的主意。 (8认同)

Kir*_*n14 6

正如@lfurini 所提到的,对于那些拥有需要额外参数的路线的人来说,接受的答案不会很有效。

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

{{ url_for(request.endpoint, **request.view_args) }}
Run Code Online (Sandbox Code Playgroud)

  • 对我来说比接受的答案更好。**request.view_args 很有帮助 (2认同)