[PYTHON] Les débutants de Django créent des applications simples 1

introduction

Cela fait un an et demi que j'ai commencé à apprendre Django. Enfin, j'ai pu créer une application Web simple (modoki) de mes propres mains, je l'enregistrerai donc après l'avoir examinée. Nous espérons que vous partagerez le peu de connaissances que l'éternel programmeur débutant a acquis et que vous aiderez ceux qui trébuchent au premier pas.

Objectif

Nous allons réduire autant que possible les choses compliquées et gênantes, créer une application Web simplifiée et nous spécialiser dans l'apprentissage du fonctionnement de Django. Donc, il ne teste pas comme Django Tutorial # 5, il n'utilise pas de CSS, il ne se déploie pas. Le soi-disant frontal est mis de côté pour le moment. Ne comprenez que ce qui est connecté et comment il se déplace autour du back-end. Si vous implémentez CRUD (créer, lire, mettre à jour, supprimer) et vous déplacer en toute sécurité, vous atteindrez l'objectif. (Ne me demandez pas s'il s'agit d'une application Web même si je ne peux pas me connecter à Internet.)

Cible

Les personnes qui ont terminé les didacticiels Django et Django Girls, mais qui ne semblent pas savoir ce qui se passe et pensent qu'il est impossible de créer une application Web par elles-mêmes.

Table de série pour les débutants pour créer des applications simples

environnement

Vue d'ensemble de Django

On dit souvent que "Django est un framework d'application Web qui utilise Python", mais cela ne vient pas à l'esprit. D'après ce que j'ai compris, qu'est-ce qu'une application Web? Lorsqu'on lui a demandé: «Quelles sont les informations (ou données) extraites de la base de données (base de données) et affichées», quel est le cadre? Lorsqu'on lui a demandé, "une boîte à outils contenant divers outils pour faciliter le travail (extraction et affichage des informations)" est répondu.

Ce que vous faites à l'intérieur de Django

Si vous imaginez ce que Django fait en interne, cela ressemble à la figure ci-dessous. Je sors les informations de la boîte pleine d'informations et les affiche sur le babillard.

IMG_0354.jpg
  1. models.py: créer un conteneur pour les informations
  2. urls.py: Décidez où afficher les informations (sur quel babillard les mettre)
  3. views.py: décidez comment collecter et traiter les informations
  4. Modèle: décidez comment coller les informations

Si vous créez ou modifiez les quatre fichiers ci-dessus dans l'ordre, cela fonctionnera au moins.

0. Préparez-vous (jusqu'à la page de lancement de la fusée)

Si vous avez suivi le didacticiel, vous devriez pouvoir continuer jusqu'à ce que Django fonctionne. Les liens ci-dessous sont pour votre référence.

Procédure pour développer Django avec VSCode

1. Préparez-vous (terminez la configuration complète)

Après avoir affiché la page de lancement de la fusée, entrez la commande pour créer une application à partir de l'environnement virtuel. Le nom de cette application est myapp

(myenv)$ python manage.py startapp myapp

Puis modifiez config / setting.py

--Ajout de myapp à INSTALLED_APPS IMG_0358.jpg

--Ajout de [os.path.join (BASE_DIR, 'templates')], à TEMPLATES IMG_0359.jpg

--Fixed LANGUAGE to ja

--Créez un répertoire de modèles dans la même hiérarchie que manage.py --Créez un répertoire statique dans la même hiérarchie que manage.py

Il doit avoir la structure de répertoires et la structure de fichiers suivantes (extraits uniquement des principaux).

.
├── config    #J'ai utilisé config comme référence pour les "manuels de base Django pouvant être utilisés sur le terrain"
│   ├── settings.py
│   ├── urls.py
├── db.sqlite3
├── myenv
│   ├── bin
│   ├── include
├── manage.py
├── myapp
│   ├── admin.py
│   ├── apps.py
│   ├── forms.py
│   ├── migrations
│   ├── models.py
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── static        #L'emplacement du répertoire statique et du répertoire des modèles dépend du didacticiel
└── templates        #Cela peut être différent, mais gérer.Il semble que la même hiérarchie que py soit bonne

Ceci termine toutes les étapes de préparation.

2. Conception

Lorsque vous vous fixez un objectif. L'application Web qui est créée est «Enregistrement de visionnage de film». Une liste des films que j'ai regardés apparaît dans la liste, et lorsque je clique sur le titre, l'impression du film ressort. Une version très simple d'un film Yahoo. Objectif si vous pouvez implémenter ce CRUD (Créer, Lire, Mettre à jour, Supprimer). Si vous ne fixez pas cet objectif, il n'y a pas de fin à ce que vous pouvez faire lorsque vous commencez à vous y tenir, et lorsque vous commencez à poursuivre des fonctions difficiles, une belle apparence et une facilité d'utilisation, vous serez submergé par la distance de l'objectif. Ce qui suit est une image vague du produit fini.

136231D5-13EE-474C-9135-D306B8C5A305.jpeg

Ce serait bien si les fonctions suivantes pouvaient y être implémentées.

  1. Une liste de visionnages de films apparaît (Lire)
  2. Cliquez sur le titre pour afficher l'écran des détails (Lire)
  3. Entrez le titre du film, le réalisateur, la date de visionnage et l'impression (Créer)
  4. Corrigez l'impression que vous avez saisie (Mettre à jour)
  5. Le film était si terrible que j'ai effacé les informations et décidé de ne pas le regarder (supprimer)

Tout d'abord, je veux commencer à faire une boîte pour mettre des informations = faire un modèle.

3. Créez models.py

J'ai écrit plus tôt que faire un modèle, c'est "faire une boîte pour y mettre des informations", mais en d'autres termes, "faire un tableau". Une image de faire plusieurs petits tableaux et de les «relier» pour faire une grande liste. Cette fois, nous allons créer une table appelée Movie, une table appelée Director et une table appelée Log. Le code source est le suivant.

myapp/models.py



from django.db import models #Apportez des outils pour faire une table
from django.utils import timezone #Apportez des outils pour gérer le temps


class Director(models.Model): #Créer une table appelée Director
    name = models.CharField(max_length=100, verbose_name="réalisé par") #nameというfieldに文字列でréalisé par名を入れる宣言
    def __str__(self): #Les deux lignes suivantes sont des fonctions permettant d'afficher le nom du directeur lors de la saisie des données via le site de gestion.
        return self.name


class Movie(models.Model): #Créer un tableau appelé Movie
    title = models.CharField(max_length=100, verbose_name="Titre")
    watch_date = models.DateField() #J'ai apporté un outil appelé fuseau horaire, pour que je puisse saisir des données de date
    director = models.ForeignKey(Director, on_delete=models.CASCADE, verbose_name="réalisé par", related_name='movie')
    def __str__(self):            #Déclaration que le champ appelé directeur sera lié à partir de la "table appelée directeur"
        return self.title         #related_Le nom sera expliqué en détail dans un autre temps.


class Log(models.Model): #Créez une table appelée Journal
    text = models.TextField() #Déclaration que le champ appelé texte est un endroit pour entrer de nombreuses chaînes de caractères
    movie = models.ForeignKey(Movie, on_delete=models.CASCADE, verbose_name="Titre", related_name='log')
    def __str__(self):            #Déclaration selon laquelle le champ appelé film sera lié à partir de la "table appelée Movie"
        return self.text          #self.Il est affiché avec le contenu saisi lors de la saisie des données à l'aide du site de gestion avec texte

Imaginez que vous puissiez créer quelque chose comme la figure ci-dessous avec le code source ci-dessus. B594169D-3FD9-4CB6-ACD9-756DDE66F7D2.jpeg

Une fois que models.py est créé, il s'agit d'un dessin de conception, donc reflétez-le dans la base de données.

(myenv) $ python manage.py makemigrations
(myenv) $ python manage.py migrate

Le tableau est complet, mais il n'y a pas de contenu (données). Vous pouvez entrer les données de python manage.py shell, mais c'est plus facile et plus facile à imaginer en entrant les données du site de gestion. Enregistrez le modèle dans admin.py pour utiliser le site d'administration

myapp/admin.py



from django.contrib import admin
from myapp.models import Director, Movie, Log    #Ajouter cette partie

admin.site.register(Director)    #Il existe peut-être un moyen de tout enregistrer en même temps
admin.site.register(Movie)       #J'apprécierais que quelqu'un puisse m'apprendre
admin.site.register(Log)

Configurer un superutilisateur pour utiliser le site d'administration

(myenv) $ python manage.py createsuperuser
#Définissez le nom d'utilisateur, l'adresse e-mail, le mot de passe, etc.

Entrez des données du site d'administration (127.0.0.1:8000/admin) F4284CE1-80D6-42AD-8935-8E8DA27B2C54.jpeg

Maintenant que models.py est terminé et que les données sont entrées, la première étape est terminée. La prochaine fois, j'expliquerai où afficher dans urls.py, comment récupérer des informations dans views.py, comment créer un modèle et afficher ces informations.

Résumé

--Django facilite le travail en récupérant et en affichant les informations stockées dans la base de données.

Continuer à la prochaine fois Les débutants de Django créent des applications simples 2

Recommended Posts

Les débutants de Django créent des applications simples 1
Les débutants de Django créent des applications simples 2
Les débutants de Django créent des applications simples 5
Les débutants de Django créent des applications simples 4
Créer les paramètres initiaux et les applications de personnel dans Django
Créer un planning Django
tutoriel simple django oscar
Créer une liste Django Todo
Créer une API avec Django
Créer un serveur REST (simple)
Création de liste de tâches [Python Django]
Créer une page d'accueil avec django
Shell pour créer un projet django
Créer un écran de connexion Django
Créez votre propre middleware Django
Créer un serveur textlint simple
Créer et lister des modèles Django
(Pour les débutants) Essayez de créer une API Web simple avec Django
Hello World (débutant) avec Django
Créez une API d'intégration sociale pour les applications smartphone avec Django
Les utilisateurs de Rails essaient de créer un moteur de blog simple avec Django
Étapes pour créer un projet Django
Django débutant a essayé de créer l'environnement
[Pour les débutants] Django -Construction d'environnement de développement-
Créer une nouvelle application utiliser python, django
[Django] Créez votre propre page d'erreur 403, 404, 500
Créer un téléchargeur de fichiers avec Django
Créer un bot LINE avec Django