web-dev-qa-db-fra.com

Comment obtenir l'URL actuelle dans jinja2 / flask (request.url ne fonctionne pas)

Existe-t-il un moyen d'imprimer l'URL actuelle dans Jinja2/Flask?

Par exemple. si l'URL actuelle est http://www.domain.com/example/1/2

{{ request.path }} oeuvres et impressions /example/1/2, mais comment obtenir également l'URL complète avec http: //?

De la documentation (ici){{ request.url }} devrait fonctionner, mais cela ne donne rien.

Merci

[~ # ~] mise à jour [~ # ~]

Voici les arguments de rendu/contexte de views.py:

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
20
alias51

Vous pouvez utiliser {{ url_for(request.endpoint) }}, cela fonctionne.

12
hugoxia

Trouvez où vous avez un code similaire à celui-ci, généralement trouvé dans controller.py ou __ init __. Py ou views.py:

from flask import render_template
...

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

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

Avec render_template() sont disponibles la requête et d'autres variables.

3
gcerar