63 votes

Flask: page actuelle dans la variable de demande

Dans un modèle, comment puis-je obtenir la page sur laquelle je suis actuellement? Je préférerais ne pas transmettre une variable telle que page , surtout lorsque je sais que certains request.xxx peuvent me fournir des informations.

 <li {% if page=="home" %}class="active"{% endif %}>                   
    <a href="http://stackoverflow.com/">Home</a>                                                
</li>                                                                 
<li {% if page=="about" %}class="active"{% endif %}>                  
    <a href="http://stackoverflow.com/about">About</a>                                          
</li> 
 

69voto

ranksrejoined Points 631

Tant que vous avez importé request , request.path devrait contenir ces informations.

59voto

negus Points 51

L'utilisation de request.path ne semble pas être une approche appropriée, car vous devrez mettre à jour les chemins en cas de modification des règles d'URL ou de déploiement de votre site dans un sous-dossier.

Utilisez request.url_rule.endpoint à la place, il contient le nom du noeud final actuel, indépendamment du chemin d'accès réel:

 (Pdb) request.url_rule.endpoint
'myblueprint.client_pipeline'
 

Dans un template:

 <li {% if request.url_rule.endpoint == "myblueprint.client_pipeline" %}class="active"{% endif %}>Home</li>
 

Bonne chance!

48voto

Sosiska Points 349

Première demande d'importation de flask dans votre application. Ensuite, vous pouvez l'utiliser sans passer au template:

 <li {% if request.path == "/home" %}class="active"{% endif %}>                   
    <a href="http://stackoverflow.com/">Home</a>                                                
</li>                                                                 
<li {% if request.path=="/about" %}class="active"{% endif %}>                  
    <a href="http://stackoverflow.com/about">About</a>                                          
</li> 
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X