[Django] Memorandum, wenn Sie asynchron kommunizieren möchten [Python3]


Ein Memo zum Abrufen von Daten aus der Datenbank mit Ajax und zum Zurückgeben im JSON-Format mit Django.

Um Ajax mit Django verwenden zu können, ist zunächst die folgende Seite für die Veröffentlichung erforderlich. Django Official: https://docs.djangoproject.com/ja/1.10/ref/csrf/

Es ist notwendig, eine js-Datei entsprechend zu erstellen.

Darüber hinaus verfügt Django standardmäßig über eine Bibliothek für die JSON-Konvertierung, z. B. JSON-Antwort und Serialisierung. Da Modelldaten jedoch direkt in JSON konvertiert werden, ist dies schwierig, da auch unnötige Daten wie pk gesendet werden. Dieses Mal dachte ich darüber nach, die Python-Bibliothek zu verwenden, um eine andere Funktion für die Json-Konvertierung für Ajax zu definieren und sie so zu steuern, dass sie von urls.py übersprungen wird. EX.

sample/models.py
class Sample(models.Model):
    name = models.CharField(max_length=30)
    first = models.CharField(max_length=30)
sample / ajax.py (anstelle von 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)
]

Fordern Sie danach wie gewohnt einfach die von Ajax festgelegte URL mit JavaScript an und rufen Sie die JSON-Daten ab. Wenn Sie mit der HTTP-Methode steuern möchten Erhalten mit Anfrage ["Methode"]. PUT kann mit QueryDict erhalten werden.

Bitte lassen Sie mich wissen, ob es einen besseren Weg gibt.

Recommended Posts

[Django] Memorandum, wenn Sie asynchron kommunizieren möchten [Python3]
Wenn Sie einen UNIX-Befehl in Python ausführen möchten
Ich möchte schnell UUID generieren (Gedenknotiz) ~ Python Edition ~
Wenn Sie mit dem Django REST-Framework filtern möchten
Wenn Sie in der for-Anweisung plt.save möchten
[Python] Dinge, die überprüft werden müssen, wenn in Django ein Unicode-Dekodierungsfehler auftritt
[Unterprozess] Wenn Sie ein anderes Python-Programm in Python-Code ausführen möchten
[Python] Wenn Sie alle Variablen in einer anderen Datei verwenden möchten
Wenn Sie einer Variablen in Python einen CSV-Export zuweisen möchten
Wenn Sie eine mehrdimensionale Liste nach mehreren Zeilen sortieren möchten
Ich möchte eine Python-Umgebung erstellen
Wenn Sie eine Linie für eine lange Zeit brechen möchten
Wenn Sie mehrere Zeichen in einer Zeichenfolge ersetzen möchten, ohne reguläre Ausdrücke in der Python3-Serie zu verwenden
Ein Gist-Repository, das Sie verwenden können, wenn Sie es mit ansible ausprobieren möchten
Wenn Sie eine Spalte spaltenweise durch einen fehlenden Wert (NaN) ersetzen möchten
Python Hinweis: Wenn Sie die Attribute eines Objekts kennen möchten
[Python] Wenn Sie ein Streudiagramm mehrerer Cluster zeichnen möchten
Bedeutet Memo, wenn versucht wird, maschinelles Lernen mit 50 Bildern durchzuführen
Ich möchte mit Python ein Fenster erstellen
Ich möchte ein Spiel mit Python machen
Python-Variablenargument Ein Memorandum beim Erben einer definierten Klasse
Wenn Sie Word Cloud erstellen möchten.
Wenn Sie den Chrome-Treiber aktualisieren möchten.
Python Hinweis: Wenn Sie einer Zeichenfolge einen Wert zuweisen
Wie man sich erinnert, wenn man ein Wort vergisst
Ich möchte mit Python in eine Datei schreiben
Ich möchte eine Django-App auf Heroku hochladen
So erstellen Sie eine Umgebung, wenn Sie Python2.7 nach der Installation von Anaconda3 verwenden möchten
Wenn Sie eine TODO-Anwendung (verteilt) jetzt nur mit Python erstellen möchten
Wenn Sie den Wert mithilfe von Auswahlmöglichkeiten in der Vorlage im Django-Modell anzeigen möchten
Wenn Sie einen Discord-Bot mit Python erstellen möchten, verwenden wir ein Framework
Was tun, wenn Sie Dateien remote von einem Windows-Client empfangen möchten?
[Python3] Code, der verwendet werden kann, wenn Sie ein Bild in einer bestimmten Größe ausschneiden möchten
Ich möchte eine Variable in einen Python-String einbetten
Ich möchte Timeout einfach in Python implementieren
Ich möchte einen Python-Generator viele Male iterieren
(Python) Versuchen Sie, eine Webanwendung mit Django zu entwickeln
Ich möchte in Python schreiben! (2) Schreiben wir einen Test
Einstellungen, wenn Sie Python-Mecab mit Travis ausführen möchten
Ein Memorandum beim Schreiben von experimentellem Code ~ Anmelden in Python
Ein Memorandum zum Ausführen eines Python-Skripts in einer Bat-Datei
Ich möchte eine Datei mit Python zufällig testen
So erstellen Sie eine Django (Python) -Umgebung auf Docker
Schritte von der Installation von Python 3 bis zur Erstellung einer Django-App
Ich möchte mit einem Roboter in Python arbeiten.
Beachten Sie beim Initialisieren einer Liste in Python
[Python] Ich möchte aus einer verschachtelten Liste einen Taple machen
Verwenden Sie communic (), wenn Sie eine Ausgabe in einem Python-Unterprozess empfangen
Dinge zu tun, wenn Sie anfangen, sich mit Django zu entwickeln
Ich möchte einen Quantencomputer mit Python betreiben
Ich möchte am Ende etwas mit Python machen
[Python] Ich möchte nur den Index verwenden, wenn ich eine Liste mit einer for-Anweisung schleife
[Linux] Wenn Sie aus mehreren Dateien nach einer bestimmten Zeichenfolge suchen möchten
Eine Funktionsnotiz, die nützlich ist, wenn Sie den Debugger aufrufen möchten, wenn beim Ausführen eines Python-Skripts ein Fehler auftritt.
[AWS] Was tun, wenn Sie mit Lambda pfeifen möchten?
[Python] Wenn Sie plötzlich ein Anfrageformular erstellen möchten
Einführung in Python Django (2) Win
Ein Weg zum mittleren Python