有没有办法在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
答案 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。