Obtenir imbriquée dict éléments à l'aide de Jinja2 en Flacon
pour ce dictionnaire, avec ce Flacon contrôleur
projects = {
'life-calc':{'url':'life-calc',
'title': 'Life Calculator'},
'text-game':{'url':'text-game',
'title':'Text Adventure'},
'fill-it-up':{'url':'fill-it-up',
'title':'Fill It Up'},
'rock-paper-scissors':{'url':'rock-paper-scissors',
'title':'Rock, Paper, Scissors'},
'bubble-popper':{'url':'bubble-popper',
'title':'Bubble Popper'}
}
@app.route('/')
def index():
return render_template("index.html",
projects = projects)
et le modèle en tant que tel
<h1>
List of My Projects
</h1>
<ol>
<li>
<a href = "life-calc">Life Calculator</a>
</li>
<li>
<a href = "text-game">Adventure Game</a>
</li>
<li>
<a href = "fill-it-up">Fill It Up</a>
</li>
<li>
<a href = "rock-paper-scissors">Rock Paper Scissors</a>
</li>
<li>
<a href = "bubble-popper">Bubble Popper</a>
</li>
</ol>
<p>test section below</p>
<ol>
{% for project in projects %}
<li><a href = "{{ project['url'] }}">{{ project['title'] }}</a> </li>
{% endfor %}
</ol>
{% endblock %}
Comment puis-je accéder aux éléments dans le dict imprimer une liste de mes projets, comme dans le code HTML ci-dessus, le test?
J'ai résolu mon problème avec l'aide de Le rendu d'un python dict en Jinja2 /Werkzeug
Le modèle de bloc doit être
{% for key, value in projects.iteritems() %}
<li><a href={{value['url']}}>{{value['title']}}</a></li>
{% endfor %}
Mais je suis toujours curieux de savoir comment avoir accès à d'autres dictionnaires imbriqués, et si c'est le meilleur moyen pour créer un menu simple.
OriginalL'auteur MattO | 2014-07-13
Vous devez vous connecter pour publier un commentaire.
Je pense que vous voulez savoir comment accéder à la imbriquée dict modèle
Si vous pensez que j'ai reçu votre question
Généralement, C'est le moyen d'accéder à la imbriquée des éléments dans le dictionnaire dans le dictionnaire.
Si le iterables se sont imbriqués plus loin vous devez augmenter la
forloop
niveau de profondeur si elle est liste ou dict.Ici, je donne juste un exemple générique dans ma façon de votre compréhension
De données:
itération dans jinja2:
Réponse:
{% for k, v in parent_dict|dictsort %}
mais avec cette méthode, je ne peut pas utiliserdictsort
. Des idées?Vous pouvez écrire le
template filters
de le faire. Il est disponible dans les modèles django, jinja2, etc..consulterMerci, je vais jeter un oeil! 🙂
itération à l'aide .iteritems() est mieux que .les éléments()
OriginalL'auteur Nava
Au lieu de l'expansion de la clé et la valeur dans la boucle, vous pouvez également utiliser la touche pour la référence de l'élément dans le dict lui-même:
Votre solution a fonctionné pour moi. Je vous remercie beaucoup.
OriginalL'auteur tkteun