[PYTHON] Essayez d'utiliser la fonction de modèle de Django

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.

La fonction template de Django n'est pas nécessaire par nature, mais je vais l'essayer pour apprendre. Basé sur le code créé dans le précédent Faisons une API web simple avec (pour les débutants) Django.

référence

Python Django Super Introduction par Yano Palm Tatsu Hidekazu System

environnement

Mac OS 10.15 VSCode 1.39.2 pipenv 2018.11.26 Python 3.7.4 Django 2.2.6

spécifications de l'API Web

Lorsque vous demandez un code de coupon par URL, le contenu du coupon associé au code de coupon sera affiché dans un modèle.

procédure

Apportez les modifications suivantes au code créé dans (Pour les débutants) Créez une API Web simple avec Django.

Enregistrez votre application pour utiliser les fonctionnalités de Django

Ajoutez simplement le nom de l'application (coupon) à INSTALLED_APPS dans settings.py sous le dossier du nom du projet.

settings.py


INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'coupon', #Ligne ajoutée
]

Créez un fichier html pour le modèle

Créez un répertoire templates sous le répertoire coupon, puis créez un répertoire coupon sous le répertoire templates. (En raison des spécifications de référence de fichier de django, il est recommandé de dupliquer le répertoire en considération de la création de plusieurs fichiers index.html.)

Créez index.html dans le répertoire de coupons créé. Le nom du coupon est provisoire et sera le coupon Amigo.

index.html


<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8">
    <title>Coupon Amigo</title>
</head>
<body>
    <h1>Coupon Amigo</h1>
    <p>
        <ul>
            <li>Code de coupon:{{coupon_code}}</li>
            <li>Avantages:{{coupon_benefits}}</li>
            <li>date d'expiration:{{coupon_deadline}}</li>
            <li>{{message}}</li>
        </ul>
    </p>
</body>
</html>

Vues.py modifiées pour que la fonction de rendu puisse envoyer des valeurs au modèle

Modifiez comme suit.

views.py


from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.
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,
        }
        return render(request, 'coupon/index.html', params)

Contrôle de fonctionnement

Après avoir enregistré les modifications, démarrez le serveur Web de django et accédez à l'URL suivante avec votre navigateur. http://127.0.0.1:8000/coupon/?coupon_code=0001 test-coupon-6a-0001.png

Essayez de changer la demande de coupon_code en 0002, 0007. test-coupon-6a-0002.png test-coupon-6a-0007.png

c'est tout.

La prochaine fois, je le rendrai gérable avec git en vue de futures modifications du code

Recommended Posts

Essayez d'utiliser la fonction de modèle de Django
Essayez d'utiliser la fonction de brouillon de Pelican
Essayez d'utiliser la fonction de débogage à distance de PyCharm
Essayez d'utiliser Tkinter
Essayez d'utiliser docker-py
Essayez d'utiliser Cookiecutter
Essayez d'utiliser des géopandas
Essayez d'utiliser Selenium
Essayez d'utiliser scipy
Essayez d'utiliser pandas.DataFrame
Essayez d'utiliser django-swiftbrowser
Essayez d'utiliser matplotlib
Essayez d'utiliser tf.metrics
Essayez d'utiliser PyODE
Essayez d'utiliser virtualenv (virtualenvwrapper)
Essayez d'utiliser virtualenv maintenant
Essayez d'utiliser Django templates.html
[Kaggle] Essayez d'utiliser LGBM
Essayez d'utiliser l'analyseur de flux de Python.
Essayez d'utiliser Tkinter de Python
Essayez d'utiliser Tweepy [Python2.7]
Essayez d'utiliser collate_fn de Pytorch
Essayez d'utiliser PythonTex avec Texpad.
[Python] Essayez d'utiliser le canevas de Tkinter
Essayez d'utiliser l'image Docker de Jupyter
Essayez d'utiliser scikit-learn (1) - Clustering K par méthode moyenne
Essayez d'utiliser matplotlib avec PyCharm
Essayez d'utiliser Azure Logic Apps
Essayez d'utiliser Kubernetes Client -Python-
Détection de caractéristiques à l'aide d'opencv (détection de coin)
Essayez d'utiliser l'API Twitter
Essayez d'utiliser OpenCV sur Windows
Essayez d'utiliser Jupyter Notebook de manière dynamique
Essayez d'utiliser AWS SageMaker Studio
Essayez de tweeter automatiquement en utilisant Selenium.
Essayez d'utiliser SQLAlchemy + MySQL (partie 1)
Essayez d'utiliser l'API Twitter
Essayez d'utiliser SQLAlchemy + MySQL (partie 2)
Essayez d'utiliser l'API PeeringDB 2.0
Essayez d'utiliser pytest-Overview and Samples-
Essayez d'utiliser le folium avec anaconda
Essayez d'utiliser l'API Admin de la passerelle Janus
Essayez d'utiliser Spyder inclus dans Anaconda
Essayez d'utiliser des modèles de conception (édition exportateur)
Essayez d'utiliser Pillow sur iPython (partie 1)
Modèle de recherche de grille simple à l'aide de Scikit-learn
Jetez un œil au modèle Django.
Essayez d'utiliser Pillow sur iPython (partie 2)
Essayez d'utiliser l'API de Pleasant (python / FastAPI)
Essayez d'utiliser LevelDB avec Python (plyvel)
Essayez d'utiliser pynag pour configurer Nagios
Essayez d'utiliser ArUco avec Raspberry Pi
Essayez d'utiliser LiDAR bon marché (Camsense X1)
[Serveur de location Sakura] Essayez d'utiliser flask.
Essayez d'utiliser Pillow sur iPython (partie 3)
Renforcer l'apprentissage 8 Essayez d'utiliser l'interface utilisateur de Chainer
Essayez d'obtenir des statistiques en utilisant e-Stat
Essayez d'utiliser l'API d'action de Python argparse
Essayez le tutoriel officiel de Django depuis le début
Limiter les vues à l'aide du modèle d'autorisation de Django