Python, Fiole, et jinja modèles - Comment effectuer une itération sur un dictionnaire créé côté serveur
Je suis en utilisant la fiole.
Sur le serveur lorsqu'un chargement de la page j'ai créer un dictionnaire.
@app.route('/edit_creative', methods=["GET", "POST"])
@login_required
def edit_creative():
if request.method == "POST":
pass
query = """select * from mystable"""
print query
rows = execute_query(query,select=True)
creative_handler={}
for row in rows:
j = row[2].strip("'")
j = json.loads(j)
creative_handler[row[1]]=j
return render_template("edit_creatives.html",title = 'Edit Creative')
Sur le côté client, je veux effectuer une itération sur les hash:
{% for crid, object in creative_handler.iteritems() %}
{{ crid }}<br>
{% endfor %}
Sur la page, j'obtiens cette erreur
UndefinedError: 'creative_handler' is undefined
Alors..comment puis-je utiliser jinja modèles d'itérer sur un hachage crée côté serveur?
OriginalL'auteur Tampa | 2012-09-18
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour passer
creative_handler
pour le modèle:OriginalL'auteur Martijn Pieters
Bien vous devez passer dans la ou les variable(s) que vous souhaitez utiliser dans le modèle.
donc
return render_template("edit_creatives.html",title = 'Edit Creative', creative_handler = creative_handler)
OriginalL'auteur Samy Vilar
Essayer
Si creative_handler contient vos données de toute façon.
Vous avez fait passer l'objet dans le modèle de sorte qu'il peut être vu et lui donner un nom que vous pouvez ensuite utiliser dans le modèle. Aussi pour info le code n'est pas exécuté côté client, il est construit à l'intérieur de votre application, puis envoyé au client. Ils voient juste le HTML que les résultats de la boucle etc.
OriginalL'auteur Paul Collingwood