[PYTHON] Tutoriel Django (création d'applications de blog) ② - création de modèles, préparation de site de gestion

Dernière fois a créé la partie de base de l'application de blog et a pu vérifier le fonctionnement. Cette fois, préparons-nous à enregistrer réellement l'article et à créer l'article.

Créer un modèle d'article

Créez un modèle pour gérer les articles de votre blog. Le modèle agit comme un pont entre la base de données et Django, ce qui nous permet d'enregistrer des données dans la base de données sans connaître la syntaxe de la base de données telle que SQL.

Le premier ensemble, models.py, définit le type de données qui sera enregistré. Dans un tableau Excel, c'est l'endroit pour définir le nom de chaque colonne du tableau et quel type de données (chaîne de caractères, valeur numérique, etc.) est contenu dans chaque colonne.

Cette fois, c'est une application de blog, et nous allons modifier l'article (Post), nous allons donc créer un modèle de publication. Il suffit d'inclure le titre, le texte et la date.

blog/models.py


from django.db import models
from django.utils import timezone #Module de gestion des dates dans django

class Post(models.Model):
    title = models.CharField('Titre', max_length=200)
    text = models.TextField('Texte')
    date = models.DateTimeField('Date', default=timezone.now)

    def __str__(self): #Définit la valeur à renvoyer lorsque le modèle Post est appelé directement
        return self.title #Renvoie le titre de l'article

Ensuite, faites en sorte que la base de données reflète les informations définies dans models.py. Nous ne traiterons pas la base de données telle quelle, mais créerons un fichier qui servira de coussin pour refléter le contenu de models.py. Vous pouvez demander à Django de créer automatiquement le fichier pour vous et d'exécuter la commande suivante pour créer le fichier:

python3 manage.py makemigrations

Ensuite, un fichier numéroté sera créé sous / blog / migrations.

.
├── blog
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── migrations
│   │   ├── 0001_initial.py #Cela sera ajouté
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   ├── urls.py
│   └── views.py
├── db.sqlite3
├── manage.py
├── mysite
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── templates
    └── blog
        └── index.html

Vous ne jouez pas directement avec ce fichier lors de la création d'une application Django, mais cela ressemble à ceci, ce qui permet à Django de faire des choses comme la création de colonnes en même temps.

0001_initial.py


# Generated by Django 3.1 on 2020-10-17 01:13

from django.db import migrations, models
import django.utils.timezone


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Post',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=200, verbose_name='Titre')),
                ('text', models.TextField(verbose_name='Texte')),
                ('date', models.DateTimeField(default=django.utils.timezone.now, verbose_name='Date')),
            ],
        ),
    ]

Maintenant, vous allez utiliser ce fichier de migration pour créer une table dans votre base de données Django fera la réflexion pour vous avec une seule commande. Exécutez la commande suivante.

(blog) bash-3.2$ python3 manage.py migrate

En cas de succès, le premier coup reviendra à la ligne de commande normale avec un grand nombre d'affichages OK.

Operations to perform:
  Apply all migrations: admin, auth, blog, 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 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 auth.0012_alter_user_first_name_max_length... OK
  Applying blog.0001_initial... OK
  Applying sessions.0001_initial... OK

Consultez le tableau sur le site de gestion

Vous pouvez créer un article soudainement, mais je pense qu'il est prudent de vérifier d'abord avec l'interface utilisateur si la table a été créée correctement.

Avec Django, l'interface utilisateur du site de gestion est créée automatiquement sans aucune préparation particulière, et vous pouvez y vérifier la table créée, ou vous pouvez la créer, la modifier et la supprimer manuellement. Nous allons nous y préparer ici.

Refléter le modèle sur le site de gestion

Un fichier appelé admin.py est créé depuis le début sous le répertoire du blog, mais vous pouvez le pétrir sur le site de gestion en décrivant les informations de modèle créées précédemment ici.

blog/admin.py


from django.contrib import admin
from .models import Post #ajouter à

admin.site.register(Post) #ajouter à

Créer un utilisateur administrateur

Pour utiliser le site de gestion, il est nécessaire de créer un utilisateur (compte) avec l'autorité appropriée, c'est-à-dire le superutilisateur. Cela peut également être créé rapidement avec les commandes Django.

python3 manage.py createsuperuser

Lorsque vous l'exécutez, il vous sera demandé votre nom d'utilisateur, votre adresse e-mail et votre mot de passe, alors entrez chacun d'eux.

Lorsque la création est terminée, l'affichage suivant apparaîtra sur la ligne de commande.

Superuser created successfully.

Connectez-vous au site de gestion

Maintenant, visitons le site d'administration de Django.

Commencez par démarrer le serveur.

python3 manage.py runserver

Ensuite, saisissez l'adresse du site de gestion dans la barre d'adresse du navigateur, Avez-vous remarqué que le projet urls.py avait la description suivante?

mysite/ursl.py


urlpatterns = [
    path('blog/', include('blog.urls')),
    path('admin/', admin.site.urls), #ici
]

Cette description existe depuis le début, et par défaut vous pouvez accéder au site d'administration avec "** 127.0.0.1: 8000 / admin **". (Habituellement, elle n'est pas beaucoup modifiée, mais dans l'environnement de production, l'adresse peut être modifiée pour des raisons de sécurité.)

Maintenant, accédez à 127.0.0.1:8000 / admin avec Chrome, etc. image.png Si l'écran de connexion est affiché comme ceci, il est réussi. Saisissez les informations relatives à la création du super-utilisateur précédemment et sélectionnez Connexion.

image.png Si la connexion réussit, l'écran de gestion s'affiche. La création d'un tel site d'administration nécessite beaucoup de préparation avec un framework normal, mais il est bon que Django soit fourni par défaut.

Vous pouvez également voir que le modèle appelé Posts est reflété dans la colonne de l'application appelée BLOG. (Puisqu'il y aura plusieurs messages, c'est aussi un point qu'il est écrit comme des messages)

Vous pouvez également créer manuellement un article ici à partir du bouton ** Ajouter **.

image.png

Vous pouvez également créer un article en choisissant de l'enregistrer. image.png

Vous pouvez même modifier ou supprimer les articles que vous avez créés. C'est pratique. image.png

La prochaine fois, j'essaierai d'afficher l'article sur l'application (affichage en html).

→ La prochaine fois Tutoriel Django (Créer une application de blog) ③ - Affichage de la liste d'articles

Recommended Posts

Tutoriel Django (création d'applications de blog) ② - création de modèles, préparation de site de gestion
Tutoriel Django (Créer une application de blog) ① --Préparation, Création de la première page
Tutoriel Django (Créer une application de blog) ⑤ --Fonction de création d'article
Tutoriel Django (Créer une application de blog) ④ --Test d'unité
Tutoriel Django (Créer une application de blog) ③ --Affichage de la liste d'articles
Tutoriel Django (Créer une application de blog) ⑦ --Front End Complete
Créer une application Web avec Django
Tutoriel Django (Créer une application de blog) ⑥ - Détails de l'article / Fonctions d'édition / suppression
Développement d'une application WEB avec Django [Définition de modèle]
Développement d'une application WEB avec Django [Création de l'écran d'administration]
Résumé du tutoriel Django pour les débutants par les débutants ② (Modèle, Admin)
Jusqu'à la création de l'application Django par terminal (environnement de développement)
Résumé du tutoriel Django pour les débutants par les débutants ① (création de projet ~)