[Python / Django] Erstellen Sie eine Web-API, die im JSON-Format antwortet

Überblick

Dieser Artikel führt Sie durch die Schritte eines Anfängers, der einen Gutscheinverteilungsdienst für das iPhone mit einer RESTful-API und schnell entwickelt. Es ist eine sehr Umwegimplementierung, da sie implementiert wurde, während die technischen Elemente einzeln untersucht wurden.

Ändern Sie den in der vorherigen Datei Versuchen Sie, die Vorlagenfunktion von Django zu verwenden erstellten Code so, dass er im JSON-Format reagiert. Es gibt ein praktisches Framework namens Django Rest Framework, aber zuerst werde ich es schreiben, ohne Django Rest Framework usw. zu verwenden, um den Mechanismus zu verstehen.

Referenz

Einführung in Python Django (6)

Umgebung

Mac OS 10.15 VSCode 1.39.2 pipenv 2018.11.26 Python 3.7.4 Django 2.2.6

Verfahren

Ändern Sie views.py

Importieren Sie das JSON-Modul, um die Daten in das JSON-Format zu konvertieren. Fügen Sie Ihrem Code import json hinzu.

Verwenden Sie "json.dumps", um ein Programm hinzuzufügen, das eine Struktur als Eingabe verwendet und eine Zeichenfolge im json-Format erstellt. Der Code, der die Struktur erstellt, verwendet den Teil params = {} des ursprünglichen Codes so wie er ist.

Fügen Sie Code hinzu, um eine Zeichenfolge im JSON-Format zu erstellen. Wir übergeben die Strukturdaten params als Argument. json_str = json.dumps(params, ensure_ascii=False, indent=2)

Der Rückgabewert ist einfach die Zeichenfolge im Json-Format, die von der Methode "HttpResponse" zurückgegeben wird. return HttpResponse(json_str)

Die modifizierte views.py ist hier.

views.py


from django.shortcuts import render
from django.http import HttpResponse
import json #Hinzugefügt

def coupon(request):
    if 'coupon_code' in request.GET:
        coupon_code = request.GET['coupon_code']
        if coupon_code == '0001':
            benefit = '1000 Yen Rabatt Gutschein!'
            deadline = '2019/10/31'
            message = ''
        elif coupon_code == '0002':
            benefit = '10%Gutschein ziehen!'
            deadline = '2019/11/30'
            message = ''
        else:
            benefit = 'NA'
            deadline = 'NA'
            message = 'Keine Gutscheine verfügbar'

        params = {
            'coupon_code':coupon_code,
            'coupon_benefits':benefit,
            'coupon_deadline':deadline,
            'message':message,
        }
        #Generieren Sie eine Zeichenfolge im JSON-Format
        json_str = json.dumps(params, ensure_ascii=False, indent=2) 
        return HttpResponse(json_str)

Funktionsprüfung

Speichern Sie den Code und starten Sie den Django-Server.

Wenn Sie mit dem Befehl curl vom Terminal auf http: //127.0.0.1: 8000 / coupon /? Coupon_code = 0001 zugreifen, können Sie den Wert mit json abrufen. ami_coupon_api-test-curl-mask.png

Als ich als nächstes mit einem Browser auf "http: //127.0.0.1: 8000 / coupon /? Coupon_code = 0001" zugegriffen habe, wurden die Daten im JSON-Format angezeigt. ami_coupon_api-test-web.png

das ist alles.

Nächstes Mal Implementierung auf der Anwendungsseite, die auf Couponinformationen reagiert (schnell)

Recommended Posts

[Python / Django] Erstellen Sie eine Web-API, die im JSON-Format antwortet
Tornado - Erstellen wir eine Web-API, die JSON problemlos mit JSON zurückgibt
Erstellen Sie eine Web-API, die Bilder mit Django liefern kann
So erstellen Sie eine JSON-Datei in Python
So erstellen Sie eine Rest-API in Django
Einfaches Formatieren von JSON mit Python
Erstellen Sie eine Funktion in Python
Erstellen Sie ein Wörterbuch in Python
Ich habe versucht, eine Klasse zu erstellen, mit der Json in Python problemlos serialisiert werden kann
[LINE Messaging API] Erstellen Sie mit Python ein umfangreiches Menü
Erstellen Sie in Python einen Dekorator, der Argumente dynamisch akzeptiert. Erstellen Sie einen Dekorator
Erstellen wir ein Skript, das sich bei Ideone.com in Python registriert.
Erstellen Sie den Code, der in Python "A und vorgeben B" ausgibt
Erstellen Sie eine Binärdatei in Python
Erstellen Sie Google Mail in Python ohne Verwendung der API
Klicken Sie auf die Web-API in Python
Erstellen Sie eine zufällige Zeichenfolge in Python
Erstellen Sie mit Django einen LINE-Bot
[LINE Messaging API] Erstellen Sie einen BOT, der eine Verbindung zu jemandem mit Python herstellt
Eine Klasse, die häufig verwendete Methoden in Twitter API (Python) zusammenfasst.
Python: Lesen von JSON-Daten von der Web-API
Erstellen Sie eine einfache GUI-App in Python
[Python] Erstellen Sie einen LineBot, der regelmäßig ausgeführt wird
[GPS] Erstellen Sie eine kml-Datei mit Python
Flask-Erstellen Sie einen Webdienst mit SQLAlchemy + PostgreSQL
Ich habe eine Webanwendung in Python erstellt, die Markdown in HTML konvertiert
Ich habe versucht, einen Formatierer zu entwickeln, der Python-Protokolle in JSON ausgibt
Erstellen wir eine Kundendatenbank, in der QR-Code automatisch in Python ausgegeben wird
Format in Python
Erstellen Sie in 1 Minute eine Vim + Python-Testumgebung
Erstellen Sie eine GIF-Datei mit Pillow in Python
Ein Memo, das ich schnell in Python geschrieben habe
Ich möchte mit Python ein Fenster erstellen
Erstellen Sie in Python ein Diagramm der Standardnormalverteilung
Erstellen Sie eine virtuelle Umgebung mit conda in Python
Erstellen Sie eine Seite, die unbegrenzt mit Python geladen wird
Ein Programm, das doppelte Anweisungen in Python entfernt
Erstellen Sie eine Webmap mit Python und GDAL
Schritte zum Entwickeln einer Webanwendung in Python
Erstellen Sie in Python ein einfaches Momentum-Investmentmodell
Python: Erstellen Sie eine Klasse, die entpackte Zuweisungen unterstützt
Erstellen Sie eine neue Seite im Zusammenfluss mit Python
Erstellen Sie ein Datum / Uhrzeit-Objekt aus einer Zeichenfolge in Python (Python 3.3).
Erstellen Sie mit Python eine Datei im Photoshop-Format (.psd)
Erstellen Sie in Python ein Paket mit globalen Befehlen
Bis Sie eine neue App in Django erstellen
Erstellen Sie eine MIDI-Datei in Python mit pretty_midi
Erstellen Sie in KiCad ein Rahmenantennenmuster in Python
[Docker] Erstellen Sie in 3 Minuten eine jupyterLab (Python) -Umgebung!
Testen Sie das Hochladen von Bildern, indem Sie in Python erstellen, ohne Dummy-Bilddateien in Django zu platzieren
Erstellen Sie ein Plugin, mit dem Sie in Python nach Registerkarten für Sublime Text 3 suchen können
Ich möchte eine Prioritätswarteschlange erstellen, die mit Python (2.7) aktualisiert werden kann.
Erstellen Sie ein Django-Projekt und eine Django-Anwendung in einer virtuellen Python-Umgebung und starten Sie den Server
[Django] Erstellen Sie ein Formular, das automatisch die Adresse aus der Postleitzahl ausfüllt
Ich möchte eine API erstellen, die ein Modell mit einer rekursiven Beziehung im Django REST Framework zurückgibt
Stellen Sie Python 3.6 / Django / Postgres-Webanwendungen in Azure bereit
Erstellen Sie einen Django-Zeitplan