[Django] Mémorandum lorsque vous souhaitez communiquer de manière asynchrone [Python3]


Un mémo pour obtenir des données de DB avec Ajax et les renvoyer au format JSON avec Django.

Tout d'abord, pour utiliser Ajax avec Django, la page suivante est requise pour la publication. Officiel Django: https://docs.djangoproject.com/ja/1.10/ref/csrf/

Il est nécessaire de créer un fichier js en fonction de cela.

De plus, Django dispose d'une bibliothèque pour la conversion JSON telle que la réponse JSON et la sérialisation par défaut, mais comme il prend directement les données du modèle et les convertit en JSON, c'est délicat car des données inutiles telles que pk sont également envoyées. Donc, cette fois, j'ai pensé à utiliser la bibliothèque Python pour définir une autre fonction de conversion Json pour Ajax et la contrôler afin qu'elle soit ignorée par urls.py. EX.

sample/models.py
class Sample(models.Model):
    name = models.CharField(max_length=30)
    first = models.CharField(max_length=30)
sample / ajax.py (au lieu de views.py)
def SampleListAjax(request): 
    objs = Sample.objects.all()
    data = [dict(name = obj.name, first = obj.first) for obj in objs]
    json = json.dumps(data)
    return HttpResponse(json, content_type="application/json")
 
sample/urls.py
class urlpatterns=[
    url(r'^sample/',ajax.SampleListAjax)
]

Après cela, comme d'habitude, demandez simplement l'URL définie par Ajax avec quelque chose comme JavaScript et obtenez les données JSON. Si vous souhaitez contrôler avec la méthode HTTP Obtenu avec request ["method"]. PUT peut être obtenu avec QueryDict.

S'il vous plaît laissez-moi savoir s'il existe une meilleure façon.

Recommended Posts

[Django] Mémorandum lorsque vous souhaitez communiquer de manière asynchrone [Python3]
Lorsque vous souhaitez lancer une commande UNIX sur Python
Je veux générer rapidement UUID (memo memo) ~ Edition Python ~
Lorsque vous souhaitez filtrer avec le framework Django REST
Lorsque vous voulez plt.save dans l'instruction for
[Python] Choses à vérifier lorsqu'une erreur de décodage Unicode apparaît dans Django
[Sous-processus] Lorsque vous souhaitez exécuter un autre programme Python en code Python
[Python] Lorsque vous souhaitez utiliser toutes les variables dans un autre fichier
Si vous souhaitez affecter une exportation csv à une variable en python
Lorsque vous souhaitez trier une liste multidimensionnelle sur plusieurs lignes
Je veux créer un environnement Python
Quand tu veux casser une ligne pendant longtemps
Lorsque vous souhaitez remplacer plusieurs caractères dans une chaîne de caractères sans utiliser d'expressions régulières dans la série python3
Un référentiel essentiel à utiliser lorsque vous souhaitez l'essayer avec ansible
Lorsque vous souhaitez remplacer une colonne par une valeur manquante (NaN) colonne par colonne
Remarque Python: lorsque vous souhaitez connaître les attributs d'un objet
[Python] Si vous souhaitez dessiner un diagramme de dispersion de plusieurs clusters
Signifie mémo lorsque vous essayez de faire de l'apprentissage automatique avec 50 images
Je veux créer une fenêtre avec Python
Je veux faire un jeu avec Python
Argument de variable Python Un mémorandum lors de l'héritage d'une classe définie
Si vous souhaitez créer Word Cloud.
Lorsque vous souhaitez mettre à jour le pilote Chrome.
Remarque Python: lors de l'attribution d'une valeur à une chaîne
Comment se souvenir quand on oublie un mot
Je veux écrire dans un fichier avec Python
Je souhaite télécharger une application Django sur heroku
Comment créer un environnement lorsque vous souhaitez utiliser python2.7 après l'installation d'Anaconda3
Si vous souhaitez créer une application TODO (distribuée) maintenant en utilisant uniquement Python
Si vous souhaitez afficher la valeur à l'aide des choix du modèle dans le modèle Django
Si vous voulez créer un bot discord avec python, utilisons un framework
Que faire lorsque vous souhaitez recevoir des fichiers à distance depuis un client Windows
[Python3] Code qui peut être utilisé lorsque vous souhaitez découper une image dans une taille spécifique
Je souhaite intégrer une variable dans une chaîne Python
Je veux facilement implémenter le délai d'expiration en python
Je veux répéter plusieurs fois un générateur Python
(Python) Essayez de développer une application Web en utilisant Django
Je veux écrire en Python! (2) Écrivons un test
Paramètres lorsque vous souhaitez exécuter python-mecab avec travis
Un mémorandum lors de l'écriture de code expérimental ~ Se connecter en python
Un mémorandum pour exécuter un script python dans un fichier bat
Je veux échantillonner au hasard un fichier avec Python
Comment créer un environnement Django (python) sur Docker
Étapes de l'installation de Python 3 à la création d'une application Django
Je veux travailler avec un robot en python.
Choses à noter lors de l'initialisation d'une liste en Python
[Python] Je veux faire d'une liste imbriquée un taple
Utilisez communiquer () lors de la réception de la sortie dans un sous-processus Python
Choses à faire lorsque vous commencez à développer avec Django
Je veux faire fonctionner un ordinateur quantique avec Python
Je veux faire quelque chose avec Python à la fin
[Python] Je souhaite utiliser uniquement l'index lors de la mise en boucle d'une liste avec une instruction for
[Linux] Lorsque vous souhaitez rechercher une chaîne de caractères spécifique dans plusieurs fichiers
Un mémo de fonction utile lorsque vous souhaitez entrer dans le débogueur si une erreur se produit lorsque vous exécutez un script Python.
[AWS] Que faire lorsque vous souhaitez piper avec Lambda
[Python] Si vous souhaitez soudainement créer un formulaire de demande
Introduction à Python Django (2) Win
Une route vers Python intermédiaire