[Python / Django] Créer une API Web qui répond au format JSON

Aperçu

Cet article vous guide à travers les étapes d'un débutant développant un service de livraison de coupons pour l'iPhone avec une API RESTful et rapide. C'est une mise en œuvre très détour car elle a été mise en œuvre en examinant les éléments techniques un par un.

Modifiez le code créé dans la précédente Essayez d'utiliser la fonction de modèle de Django pour qu'il réponde au format JSON. Il existe un framework pratique appelé Django Rest Framework, mais je vais d'abord l'écrire sans utiliser Django Rest Framework etc. dans le but de comprendre le mécanisme.

référence

Introduction à Python Django (6)

environnement

Mac OS 10.15 VSCode 1.39.2 pipenv 2018.11.26 Python 3.7.4 Django 2.2.6

procédure

Modifier views.py

Importez le module json pour convertir les données au format json. Ajoutez ʻimport json` à votre code.

Utilisez json.dumps pour ajouter un programme qui prend une structure en entrée et crée une chaîne de format json. Le code qui crée la structure utilise la partie params = {} du code d'origine tel quel.

Ajoutez du code pour créer une chaîne au format json. Nous transmettons les données de structure params comme argument. json_str = json.dumps(params, ensure_ascii=False, indent=2)

La valeur de retour est simplement la chaîne de format Json renvoyée par la méthode HttpResponse. return HttpResponse(json_str)

Le views.py modifié est ici.

views.py


from django.shortcuts import render
from django.http import HttpResponse
import json #Ajoutée

def coupon(request):
    if 'coupon_code' in request.GET:
        coupon_code = request.GET['coupon_code']
        if coupon_code == '0001':
            benefit = 'Coupon de réduction de 1000 yens!'
            deadline = '2019/10/31'
            message = ''
        elif coupon_code == '0002':
            benefit = '10%Tirage au sort!'
            deadline = '2019/11/30'
            message = ''
        else:
            benefit = 'NA'
            deadline = 'NA'
            message = 'Aucun coupon disponible'

        params = {
            'coupon_code':coupon_code,
            'coupon_benefits':benefit,
            'coupon_deadline':deadline,
            'message':message,
        }
        #Générer une chaîne de format json
        json_str = json.dumps(params, ensure_ascii=False, indent=2) 
        return HttpResponse(json_str)

Contrôle de fonctionnement

Enregistrez le code et démarrez le serveur django.

Si vous accédez à http: //127.0.0.1: 8000 / coupon /? Coupon_code = 0001 avec la commande curl depuis le terminal, vous pouvez obtenir la valeur avec json. ami_coupon_api-test-curl-mask.png

Ensuite, lorsque j'ai accédé à http: //127.0.0.1: 8000 / coupon /? Coupon_code = 0001 avec un navigateur, les données au format json étaient affichées. ami_coupon_api-test-web.png

c'est tout.

La prochaine fois, Mise en œuvre côté application qui répond aux informations de coupon (swift)

Recommended Posts

[Python / Django] Créer une API Web qui répond au format JSON
Tornado - Créons une API Web qui renvoie facilement JSON avec JSON
Créez une API Web capable de fournir des images avec Django
Comment créer un fichier JSON en Python
Comment créer une API Rest dans Django
Formatez facilement JSON avec Python
Créer une fonction en Python
Créer un dictionnaire en Python
J'ai essayé de créer une classe qui peut facilement sérialiser Json en Python
[API LINE Messaging] Créez un menu riche avec Python
En Python, créez un décorateur qui accepte dynamiquement les arguments Créer un décorateur
Créons un script qui s'enregistre avec Ideone.com en Python.
Créez le code qui renvoie "A et prétendant B" en python
Créer un fichier binaire en Python
Créez Gmail en Python sans utiliser l'API
Accédez à l'API Web en Python
Créer une chaîne aléatoire en Python
Créer un bot LINE avec Django
[LINE Messaging API] Créez un BOT qui se connecte à quelqu'un avec Python
Une classe qui résume les méthodes fréquemment utilisées dans l'api twitter (python)
Python: lecture de données JSON à partir de l'API Web
Créer une application GUI simple en Python
[Python] Créez un LineBot qui s'exécute régulièrement
[GPS] Créer un fichier kml avec Python
Flask-Créer un service Web avec SQLAlchemy + PostgreSQL
J'ai créé une application Web en Python qui convertit Markdown en HTML
J'ai essayé de développer un formateur qui génère des journaux Python en JSON
Créons une base de données clients où le code QR est automatiquement émis en Python
format en python
Créez un environnement de test Vim + Python en 1 minute
Créer un fichier GIF en utilisant Pillow en Python
Un mémo que j'ai écrit un tri rapide en Python
Je veux créer une fenêtre avec Python
Créer un graphique de distribution normale standard en Python
Créer un environnement virtuel avec conda avec Python
Créer une page qui se charge indéfiniment avec python
Un programme qui supprime les instructions en double en Python
Créer une carte Web en utilisant Python et GDAL
Étapes pour développer une application Web en Python
Créer un modèle d'investissement dynamique simple en Python
Python: créer une classe qui prend en charge l'affectation décompressée
Créer une nouvelle page en confluence avec Python
Créer un objet datetime à partir d'une chaîne en Python (Python 3.3)
Créer un fichier au format Photoshop (.psd) avec python
Créer un package contenant des commandes globales en Python
Jusqu'à ce que vous créiez une nouvelle application dans Django
Créez un fichier MIDI en Python en utilisant pretty_midi
Créer un modèle d'antenne cadre en Python dans KiCad
[Docker] Créez un environnement jupyterLab (python) en 3 minutes!
Créer en Python sans fichier image factice dans Django et tester le téléchargement de l'image
Créez un plugin qui vous permet de rechercher les onglets Sublime Text 3 en Python
Je souhaite créer une file d'attente prioritaire pouvant être mise à jour avec Python (2.7)
Créer un projet et une application Django dans un environnement virtuel Python et démarrer le serveur
[Django] Créez un formulaire qui remplit automatiquement l'adresse à partir du code postal
Je souhaite créer une API qui retourne un modèle avec une relation récursive dans Django REST Framework
Déployer des applications Web Python 3.6 / Django / Postgres sur Azure
Créer un planning Django