Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

module ast au service de Flask et javascript

+2 votes

Je sais maintenant reconstituer un dictionnaire à partir d'une string avec le module ast.
Je bidouille avec Flask et j'aurai besoin que Javascript appelle une fonction python qui

1-recompose un dictionnaire à partir d'une string ( à cause du passage par return jsonify)
2-fasse le tri pour redispatcher le bon couple clef / valeur dans les div adéquates sur la page html

Je pense pas que jinja sache faire ça correctement, auriez vous un exemple minimaliste pour que j'ai une idée de la syntaxe. Le but est une mise à jour de div après un appel GET en ajax.

Par exemple on click pour acheter 1 kg de patates, on perd 5 euros, le panier se remplit d'un 1 kilo de patate,
et le stock du magasin perd un kilo de patates.

Avec jinja on peut facilement générer tout un choix d' article en peu de ligne grâce à une boucle.
Je passe par ajax pour avoir les valeur en "temps réel" plutôt que de tout rafraîchir.

demandé 3-Jun-2015 par buffalo974 (2,542 points)

1 Réponse

+3 votes
 
Meilleure réponse

1-recompose un dictionnaire à partir d'une string ( à cause du passage par return jsonify)

jsonify te renvoit une string json de ton dictionnaire serialisé.
Normalement tu n'as pas besoin d'ast pour le deserialiser ici sauf si ton dictionnaire a été convertit en str avant d’être sérialisé (cf ce commentaire sur ta question précédente)

Si tu post du json dans ta requête ajax avec le bon mimetype, coté serveur tu peux directement accéder a ta data désérialisée avec l'attribut json de l'objet request :

request.json[key]

Si le mimetype n'est pas (bien) spécifié, tu peux toujours utiliser

data = request.get_json()

2-fasse le tri pour redispatcher le bon couple clef / valeur dans les div adéquates sur la page html

Ça ça va dépendre de la structure de la donnée tu renvois, mais Jinja est parfaitement capable d'itérer sur un dictionnaire. A toi de faire le bon découpage entre ton template et les données que tu mets dedans.
Si tes données doivent être triées / traitées, tu préfèreras le faire en python avant de les passer au systeme de template.

répondu 4-Jun-2015 par jc (2,674 points)
sélectionné 12-Fev-2016 par buffalo974
...