[PYTHON] Premiers pas avec Django 2

Essayez d'afficher "Hello World" sur le Web

Créez une application Web appelée Hello World App et affichez "Hello World".

Réglage initial

Tout d'abord, déplacez-vous vers un répertoire arbitraire, créez un répertoire nommé helloworld (tout va bien) et déplacez-vous vers ce répertoire. Entrez ensuite dans l'environnement virtuel et exécutez la commande suivante pour créer un nouveau projet Django.

$ django-admin startproject helloworld_project .
# django-admin.py:Script pour créer les répertoires et fichiers nécessaires à un nouveau projet
# helloworld_progect:C'est un nom de projet, donc tout va bien

Le répertoire helloworld_project est créé. Les fichiers suivants existent dans le répertoire.

├── helloworld
    ├── manage.py          #Un utilitaire de ligne de commande pour effectuer diverses opérations sur le projet Django.
    ├── helloworld_project
        ├── __init__.py    #Un fichier vide pour indiquer à Python que ce répertoire est un package Python
        ├── asgi.py        #Point d'entrée pour le serveur Web compatible ASGI qui fournit le projet
        ├── settings.py    #Contrôler les paramètres du projet
        ├── urls.py        #urlresolver(Mécanisme pour trouver la vue correspondant à l'url reçue dans la requête)Contient une liste de modèles utilisés dans.
        └── wsgi.py        #wsgi:Une définition d'une interface commune qui connecte un serveur et une application Web

Créer une application

Ajoutez et créez une application (fonction) à un nouveau projet appelé helloworld_project. Lorsque vous entendez le mot application, vous avez tendance à penser à quelque chose comme LINE, Twitter ou Instagram, mais dans Django, l'application fait référence à une fonction. De nombreuses fonctions coopèrent entre elles pour créer LINE. Un projet Django contient une ou plusieurs applications et coopère entre eux pour fournir des services. Par exemple, sur un site e-commerce --Authentification d'utilisateur --Paiement

Nouvelle appli

Tout d'abord, si le serveur est en cours d'exécution, arrêtez-le avec Ctrl + c. Exécutez la commande suivante pour créer une application nommée «pages».

$ python manage.py startapp pages

Cela créera le répertoire / helloworld / pages.

├── pages
    ├── __init__.py      
    ├── admin.py        #Fichier de configuration dans admin
    ├── apps.py         #Fichier de paramètres de l'application elle-même appelé pages
    ├── migrations      #model.Enregistrez l'historique des modifications du fichier py, de la base de données et des modèles.Répertoire pour stocker des fichiers pour garder py synchronisé
    │   └── __init__.py
    ├── models.py       #Fichier modèle de l'application. Un fichier qui définit un modèle de base de données.
    ├── tests.py        #fichier de test d'application
    └── views.py        #Voir le fichier de l'application. Un fichier qui traite les demandes et les réponses aux applications.

J'ai créé une application appelée pages dans le projet de Django (bonjour le monde), mais Django ne sait toujours pas si les pages sont des applications ou quoi. Je dois dire à Django d'utiliser une application appelée pages. Si vous ouvrez helloworld_project / settings.py, vous trouverez les parties suivantes.

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

Ce sont les applications Django qui existent par défaut. Vous pouvez ajouter votre propre application à votre projet Django uniquement en ajoutant des pages ici. Ajoutez la ligne suivante.

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'pages.apps.PagesConfig', # new
]

Vous devez toujours ajouter votre propre application en bas. En effet, Django exécute le paramétrage de INSTALLED_APPS de haut en bas. Vous devez d'abord charger l'application d'administration, puis authentifier, puis .... La raison en est que la plupart des applications créées par soi-même dépendent de fonctions telles que admi.

Modifier vue

Ensuite, ajoutez le code pour afficher la chaîne de caractères dans views.py.

pages/views.py


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

def homePageView(request):
    return HttpResponse('Hello, World!')
    #Lorsqu'une fonction appelée homePgeView reçoit une requête, elle appelle une fonction appelée HttpResponse et renvoie la valeur obtenue.
    #Cette fois'Hello, World!'Il renvoie une réponse qui affiche la chaîne de caractères.

En premier lieu, une vue demande des informations telles que les données d'un modèle (model.py). Le modèle transmet ensuite les données demandées à la vue vers le modèle. En d'autres termes, la vue (view.py) est une fonction Python qui reçoit une requête et renvoie une réponse.

--Response: peut être n'importe quoi du contenu HTML de la page Web, des redirections, des erreurs 404, des documents XML, etc.

** Notez que la vue (view.py) doit essentiellement renvoyer un objet HttpResponse. (Il y a des exceptions) **

Django utilise des objets de requête et de réponse pour transmettre le statut de traitement dans tout le système. Lors de la réception d'une requête pour une page, Django crée un objet HttpRequest. Cet objet contient les métadonnées de la demande. Django charge ensuite la vue appropriée et transmet HttpRequest comme premier argument de la fonction de vue. Chaque vue doit renvoyer un objet HttpResponse. https://djangoproject.jp/doc/ja/1.0/ref/request-response.html

Paramètres d'URL

Vient ensuite le paramètre URL. À partir de maintenant, vous toucherez deux fichiers (①, ②) urls.py, alors faisons de notre mieux tout en étant conscient des différences.

① Créez un fichier appelé pages / urls.py. (** Notez le répertoire actuel. Dans le répertoire des pages. **) Veuillez ajouter le code suivant.

pages/urls.py


from django.urls import path
from .views import homePageView

urlpatterns = [
    path('', homePageView, name='home')
]
#Django est le nom de domaine de l'URL(http://127.0.0.1:8000/Partie de)Est ignoré, donc ce modèle d'URL est une chaîne vide('')Allumettes

Le code ci-dessus signifie que lorsque vous accédez à l'adresse 127.0.0.1:8000 (l'adresse de la première page), vous devez appeler la fonction d'affichage homePageView. name = 'home' est le nom de l'URL utilisée pour identifier la vue. Vous aurez la possibilité d'utiliser le nom de cette URL à l'avenir, donc si vous lui donnez un nom unique facile à retenir, vous ne serez pas confus.

② Un fichier appelé helloworld_progect / urls.py doit être créé par défaut. Veuillez ajouter le code suivant ici.

helloworld_project/urls.py


from django.contrib import admin
from django.urls import path, include #new

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('pages.urls')), #new
]
#Similaire à ①, le modèle d'URL est une chaîne de caractères vide('')Spécifiez dans http://127.0.0.1:8000/La page d'entrée est l'adresse du seul domaine.

Importez la fonction include pour importer pages.urls. Dans path () qui spécifie'admin / ', il est configuré pour retourner l'écran de gestion (admin.site.urls) (l'afficher sur le navigateur) lorsque l'URL est "admin /". L'écran de gestion est une page où vous pouvez utiliser l'application avec un navigateur. Django redirigera les requêtes qui arrivent sur la page d'entrée vers pages.urls. En d'autres termes, lors de l'accès à la page d'entrée, la fonction homePageView de pages.urls est automatiquement exécutée.

Hello World terminé

Vous êtes maintenant prêt à afficher Hello, World! Sur votre site Web. Tout ce que vous avez à faire est de démarrer le serveur.

$ python manage.py runserver
Screen Shot 2020-03-26 at 10.45.38.png

La prochaine fois, j'en ferai plus sur Pages App.

Matériel de référence

Django for Beginners 3.0

Recommended Posts

Premiers pas avec Django 2
Premiers pas avec Python Django (1)
Premiers pas avec Python Django (4)
Premiers pas avec Python Django (3)
Introduction à Python Django (6)
Premiers pas avec Django avec PyCharm
Premiers pas avec Python Django (5)
Django 1.11 a démarré avec Python3.6
Premiers pas avec Android!
1.1 Premiers pas avec Python
Premiers pas avec apache2
Premiers pas avec Python
Premiers pas avec Numpy
Premiers pas avec Spark
Premiers pas avec Python
Premiers pas avec Pydantic
Traduire Premiers pas avec TensorFlow
Introduction aux fonctions Python
Introduction à Tkinter 2: Button
Lancez-vous avec Django! ~ Tutoriel ⑤ ~
Premiers pas avec Go Assembly
Premiers pas avec PKI avec Golang ―― 4
Django Getting Started: 2_ Créer un projet
Django Getting Started: intégration 4_MySQL
Django Getting Started: intégration 3_Apache
Lancez-vous avec Django! ~ Tutoriel ④ ~
Django Getting Started Part 2 avec eclipse Plugin (PyDev)
Premiers pas avec Python responder v2
Introduction à Git (1) Stockage d'historique
Premiers pas avec les applications Web Python
Premiers pas avec Python pour les classes PHPer
Premiers pas avec Sparse Matrix avec scipy.sparse
Premiers pas avec Julia pour Pythonista
Premiers pas avec Python Bases de Python
Premiers pas avec Cisco Spark REST-API
Commençant par USD sur Windows
Premiers pas avec les algorithmes génétiques Python
Premiers pas avec Python pour les fonctions PHPer
Premiers pas avec CPU Steal Time
Internationalisation avec Django
Grails pour commencer
Notes d'étape pour démarrer avec django
Premiers pas avec python3 # 1 Apprenez les connaissances de base
Premiers pas avec Python Web Scraping Practice
Premiers pas avec Python pour PHPer-Super Basics
Premiers pas avec Python Web Scraping Practice
Premiers pas avec Dynamo de Python boto
Premiers pas avec Lisp pour Pythonista: Supplément
Premiers pas avec Heroku, déploiement de l'application Flask
Premiers pas avec TDD avec Cyber-dojo chez MobPro
Premiers pas avec Heroku-Viewing Hello World en Python Django avec Raspberry PI 3
Authentifier Google avec Django
Démarrer avec Python avec 100 coups sur le traitement du langage
Télécharger des fichiers avec Django
Résumé du développement avec Django