[PYTHON] À moi-même en tant que débutant Django (4) --Créer une application mémo-

** Liste des tutoriels **

No. Titre
1 À moi-même en tant que débutant Django (1)-Application de projet-
2 À moi-même en tant que débutant Django (2)-Qu'est-ce que MTV-
3 À moi-même en tant que débutant Django (3)-Bonjour le monde!-
4 À moi-même en tant que débutant Django (4)-Création d'une application mémo-

** Dernier examen **

Dernière fois a vérifié "Hello World!" Avec Django. Cette fois, nous allons créer une application mémo simple en utilisant tous les ** MTV **!

** Let's Django - Créer une application mémo - **

L'objectif cette fois est d'approfondir la compréhension du ** modèle ** et du ** modèle ** qui n'ont pas été utilisés la dernière fois en créant une application mémo. De plus, sur la base de ce que j'ai appris jusqu'à présent, je serais très heureux si je pouvais comprendre le flux de création d'une application Web avec Django!

Nous allons le créer selon le flux suivant.

  1. Définition du modèle
  2. Réflexion dans la base de données (événement habituel: migrer)
  3. Page d'administration
  4. Afficher les paramètres
  5. Paramètres du modèle
  6. Paramètres d'URL

** Définition du modèle **

** Modèle ** décrit la définition des données à stocker dans la base de données. Écrivons-le.

app1/models.py

from django.db import models

# Create your models here.

class Memo(models.Model):

title = models.CharField (verbose_name = 'title', max_length = 100) text = models.TextField (verbose_name = 'content') created_date = models.DateTimeField (verbose_name = 'date de création', auto_now_add = True)

    def __str__(self):
        return self.title

Regardons chacun d'eux.

--Memo est le nom du modèle. Les noms de modèle sont en majuscules. --title, text, created_date sont des champs à enregistrer dans la base de données.

C'est la fin de la définition du modèle. Il existe de nombreux autres types de champs dans le modèle, donc si vous êtes curieux, jetez un œil à la documentation officielle (https://docs.djangoproject.com/en/3.0/contents/). ..

** Réflexion dans la base de données (événement habituel: migrer) **

Une fois le modèle défini, vous devez effectuer un processus de ** migration ** pour refléter ces informations dans la base de données. Il s'agit d'un événement habituel ou d'un événement traditionnel, et il doit être fait chaque fois qu'il y a un ajout ou un changement de modèle.

Pour refléter la définition du modèle dans la base de données, effectuez le traitement suivant.

Créer un fichier de migration

Exécutez la commande suivante à l'invite de commande.

C:\Users\User_name\myapp>python manage.py makemigrations

Ensuite, vous verrez la sortie suivante. À ce stade, un fichier de migration a été créé, mais il n'a pas encore été reflété dans la base de données.

Migrations for 'app1':
  app1\migrations\0001_initial.py
    - Create model Memo

Mon grand

Continuez avec la commande suivante:

C:\Users\User_name\myapp>python manage.py migrate

Ensuite, vous devriez voir la sortie suivante.

Operations to perform:
  Apply all migrations: admin, app1, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying app1.0001_initial... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying sessions.0001_initial... OK

My Great est complet avec juste cela! Le modèle Memo a été reflété avec succès dans la base de données! ... mais il est difficile d'imaginer ce qui s'est réellement passé. Afin de résoudre un tel problème, nous avons préparé un article spécial aujourd'hui.

** Page Administrateur **

Django est livré avec une page d'administration par défaut. Ici, je voudrais stocker les données dans la base de données à partir de la page administrateur et voir ce qui s'est passé lors de la migration précédente.

Démarrez immédiatement le serveur et accédez à la page administrateur!

C:\Users\User_name\myapp>python manage.py runserver

Après avoir vérifié que le serveur a démarré, accédez à http: //127.0.0.1: 8000 / admin. Ensuite, vous vous retrouverez avec la page suivante. django_admin.PNG

Hmm? Oh, mot de passe pour le nom d'utilisateur? Je n'ai pas une telle chose. C'est vrai, mais ne vous inquiétez pas. Cela peut également être facilement créé à partir de l'invite de commande. Déconnectez le serveur une fois ou préparez une nouvelle console et exécutez la commande suivante.

C:\Users\User_name\myapp>python manage.py createsuperuser
Username (leave blank to use 'User_name'): memo_user
Email address: [email protected]
Password:
Password (again):
Superuser created successfully.    

Il sera affiché ligne par ligne à partir du haut. Si vous appuyez sur Entrée sans entrer de nom d'utilisateur, votre «nom_utilisateur» sera enregistré. L'enregistrement de l'utilisateur est terminé lorsque vous avez correctement saisi l'adresse e-mail et le mot de passe. Redémarrez le serveur et connectez-vous à la page / admin. django_admin_page.PNG Il s'agit de la page d'administration fournie par défaut avec Django. C'est simple et sophistiqué, n'est-ce pas? Hmm, j'aime ça. Pour vérifier le modèle sur la page administrateur, vous devez le définir dans ʻapp1 / admin.py`.

app1/admin.py

from django.contrib import admin

depuis .models import Memo # Import Memo

# Register your models here.

admin.site.register (Mémo) # Ajouter

Après avoir écrit ces derniers, veuillez revenir à la page administrateur et actualiser la page. django_admin_add_model.PNG J'ai confirmé le modèle de mon application Memo! Maintenant, allez sur la page Mémo et créez une note à partir de ADD MEMO en haut à droite! add_memo.PNG Quel genre de mémo avez-vous écrit? Non, je m'en fichais (rires) Si vous revenez à la page de mémo, vous pouvez voir que le mémo a été ajouté. De cette manière, Django vous permet d'ajouter des données à la base de données et de vérifier son contenu via la page administrateur. Apparemment, cela semble être une fonction ridiculement utile, et il est nécessaire d'écrire et d'utiliser le langage de la base de données à partir de la console ou de créer une page d'administrateur à partir de zéro. Pour être honnête, je suis toujours en train de développer la base de données, il est donc très utile de pouvoir manipuler les données visuellement de cette manière. Merci beaucoup, Django.

** Paramètres d'affichage **

À partir de là, nous définirons ** View **. View récupère les données de la base de données sur demande et décide comment les afficher à l'écran!

app1/views.py

from django.shortcuts import render

depuis .models import Memo # Import Memo

# Create your views here.

def memo_list(request):
    memos = Memo.objects.all()

    context = {'memos': memos}
    return render(request, 'app1/memo_list.html', context)

Cette fois, j'afficherai la liste des mémos à l'écran. Pour ce faire, nous devons obtenir les données du modèle Memo.

--memos = Memo.objects.all () : Récupère tous les objets (titre, contenu, date de création) de Memo. --context = {'memos': memos} : Transformez les informations requises dans un dictionnaire et transmettez-les à Template. --render (request, 'app1 / memo_list.html', context): Passer context à ʻapp1 / memo_list.html. Le memo_list.html ici est le modèle. (Memo_list.html` sera créé plus tard)

Ceci termine les paramètres d'affichage. Il est possible d'affiner les conditions lors de l'acquisition de données, mais cette fois, nous allons tout acquérir avec Simple is Best. Document officiel sera utile pour savoir comment obtenir les données.

** Paramètres du modèle **

C'est enfin fini. Le modèle n'est pas fourni par défaut, vous devez donc le préparer vous-même. Préparez un répertoire appelé templates sous l'application et préparez-y un répertoire appelé app1. Ensuite, placez le fichier html dans app1. Veuillez vous référer à cet article par narito blog pour la raison pour laquelle cette composition est utilisée.

myapp/templates/app1/memo_list.html

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Memo</title>
</head>

<style>
    .app-name {
        text-align: center;
    }
    .contents {
        margin-left: 300px;
        margin-right: 300px;
    }
</style>


<div class='app-name'>

Mon mémo

<! - Contenu du mémo-> {% for memo in memos %}


Titre: {{memo.title}}

Date de création: {{memo.created_date}}

{{ memo.text | linebreaks }}

{% endfor %}

Je ne parlerai pas de HTML / CSS ici, mais je me concentrerai sur la façon d'afficher les mémos reçus de View plus tôt dans Template.

--Entrez la syntaxe if, for dans {%%}. --memo.title obtient le titre du mémo, memo.created_date obtient la date de création du mémo, et memo.text obtient le contenu du mémo. Vous devez le mettre entre {{}} pour voir ces données. --linebreaks convertira les sauts de texte en balises HTML selon le cas.

À ce stade, l'objectif est juste au coin de la rue! Tout ce que vous avez à faire est de définir l'URL!

** Paramètres d'URL **

Définissez l'URL memo_list / pour diriger le traitement vers views.memo_list. app1/urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.hello),

chemin ('memo_list /', vues.memo_list), # Add ]

Maintenant, démarrez le serveur comme d'habitude et allez sur http: //127.0.0.1: 8000 / memo_list! memo_app.PNG Vous l'avez enfin fait! ** Modèle ** - ** Modèle ** - ** Voir ** ont joint les mains fermement pour compléter l'application mémo! Toutes nos félicitations! Bien sûr, ce n'est que le début du début et il n'est pas étonnant que cela ne soit pas satisfaisant. En parlant d'application mémo

--Publier / Modifier / Supprimer

Ce serait plus pratique s'il y avait une telle fonction. Rassurez-vous, tout ce que j'ai listé ici peut être implémenté dans Django! Vous voyez, vous voulez en savoir plus sur Django, non? Vous pouvez également apprendre le HTML / CSS et le décorer pour créer des applications Web bien conçues!

Finalement

Comment était-ce? Cette fois, j'ai écrit un total de 4 tutoriels Django. J'espère que vous avez atteint l'objectif de ce tutoriel, "Comprendre le mécanisme de Django de manière transcendantale et faire sentir aux gens que Django n'est ni effrayant ni intéressant." Au début de l'apprentissage, je suis sûr que je dis "Django n'est pas effrayant! Intéressant!"

** Les références **

Recommended Posts

À moi-même en tant que débutant Django (4) --Créer une application mémo-
À moi-même en tant que débutant Django (1) -Création d'un projet / application-
Pour moi en tant que débutant Django (3) - Bonjour tout le monde! ---
Pour moi en tant que débutant Django (2) - Qu'est-ce que MTV?
Étapes pour créer un projet Django
Comment développer une application de panier avec Django
Procédure de création d'application multi-plateforme avec kivy
Comment créer une API Rest dans Django
Jusqu'à ce que vous créiez une nouvelle application dans Django
Je souhaite télécharger une application Django sur heroku
Créer un planning Django
Essayez de créer une application Todo avec le framework Django REST
Étapes de l'installation de Python 3 à la création d'une application Django
Créer une application Todo avec Django ③ Créer une page de liste de tâches
Créer une application Todo avec Django ⑤ Créer une fonction d'édition de tâches
Créer une page d'accueil avec django
Shell pour créer un projet django
Créer un écran de connexion Django
Créez une application de gestion de partition shogi à l'aide de Django 4 ~ Créer une vue ~
Créer une application Todo avec Django ① Créer un environnement avec Docker
[Django] Mémo pour créer un environnement de Django + MySQL + Vue.js [Python]
Créez une application de gestion de score shogi à l'aide de Django 2 ~ Paramètres de la base de données ~
Déployer Django + React à partir de zéro vers GKE (3) Créer un projet GCP
Pratique de développement d'applications Web: Créez une page de création d'équipe avec Django! (Page de création de décalage)
Créez une application de gestion de partition shogi à l'aide de Django 6 ~ Split Template ~
Comment créer un package Conda
Les utilisateurs de Rails essaient de créer un moteur de blog simple avec Django
Comment créer un pont virtuel
Création et déploiement d'applications Django (PTVS) à l'aide du stockage Azure Table
Implémenter l'application Django sur Hy
Comment créer un Dockerfile (basique)
5 façons de créer un chatbot Python
Comment créer un fichier de configuration
Créer une API REST pour faire fonctionner dynamodb avec le Framework Django REST
Créer un téléchargeur de fichiers avec Django
Créer un bot LINE avec Django
Pratique de développement d'applications Web: Créez une page de création d'équipe avec Django! (Introduction)
Une histoire sur un débutant essayant de configurer CentOS 8 (mémo de procédure)
Créer une application Todo avec Django ④ Implémenter la fonction de création de dossier et de tâche
J'ai essayé de créer un linebot (implémentation)
Comment créer un clone depuis Github
Créer un bot pour retweeter les informations sur le virus corona
Comment créer un dossier git clone
J'ai essayé de créer un linebot (préparation)
Créez un modèle pour votre planning Django
Créer une application GUI simple en Python
Créer une application graphique avec Tkinter de Python
Créez une application Web simple avec Flask
Créer une application Python-GUI dans Docker (PySimpleGUI)
[Django] Mémo lorsque le journal n'était pas
Création de la première application avec Django startproject
Différentes façons de créer un dictionnaire (mémoires)
Comment créer un référentiel à partir d'un média
Script pour créer un fichier de dictionnaire Mac
Les débutants ont essayé de créer une application Web native pour le cloud à l'aide de Datastore / GAE
Essayez de créer un site de gestion Todo en utilisant WebSocket avec Django (Swamp Dragon)
Un débutant en apprentissage automatique a tenté de créer une IA de jugement Sheltie en un jour
Modifier Excel à partir de Python pour créer un tableau croisé dynamique
Comment déguiser un fichier ZIP en fichier PNG
Je souhaite créer facilement un modèle de bruit