Premiers pas avec Python Django (3)

Démarrez avec Django

document

C'est une bonne idée de lire "Si vous partez de rien: Vue d'ensemble" et "Tutoriel ici: Partie 1-7", mais vous pouvez d'abord essayer ce cours.

Essayez de le faire avec Django

Créer un projet

Créons une application qui gère des livres simples.

Commencez par créer un projet appelé mybook. Pour ce faire, utilisez la commande django-admin startproject mybook.

Lorsque vous essayez de créer un projet avec PyCharm, il semble qu'un dossier appelé PycharmProjects sera créé, donc je vais le créer sous ce

Assurez-vous que vous êtes dans l'environnement virtuel de (env1). Si vous l'avez déjà fait, vous n'avez pas besoin des scripts suivants Mac workon env1 et WindowsScripts \ activate.

Pour Mac,

$ workon env1

(env1) $ cd ~/PycharmProjects/
(env1) $ django-admin startproject mybook

Pour les fenêtres,

C:¥Users¥hoge>cd Documents¥env1
C:¥Users¥hoge¥Documents¥env1> Scripts¥activate

(env1) C:¥Users¥hoge¥Documents¥env1> cd C:¥Users¥hoge¥PycharmProjects
(env1) C:¥Users¥hoge¥PycharmProjects> django-admin startproject mybook

De là, l'explication revient à l'hypothèse Mac. Pour Windows, veuillez lire comme chaque environnement.

Fichier créé dans ~ / PycharmProjects /

mybook/
    manage.py
    mybook/
        __init__.py
        asgi.py
        settings.py
        urls.py
        wsgi.py

Allez dans le répertoire mybook.

$ cd mybook

Ouvrir un projet dans PyCharm

Ouvrons le projet généré avec PyCharm.

  1. Sélectionnez Créer un nouveau projet

Welcome_to_PyCharm.jpg

  1. Sélectionnez Django sur la gauche.

New_Project_01.png

  1. Emplacement: cliquez sur l'icône du dossier à droite et sélectionnez le dossier mybook que vous venez de générer.

New_Project_02.png

Pour Windows, il s'agit de C: \ Users \ hoge \ Pycharm Projects \ mybook.

  1. Cliquez sur l'icône en forme de triangle de Project Interpreter: pour l'agrandir et sélectionnez "..." de Interpriter for Existing Interpreter.

New_Project_11.png

  1. Sélectionnez "..." dans Virtualenv Environment> Interpreter.

New_Project_12.png

  1. Sélectionnez Python3 pour l'environnement virtuel env1 comme interpréteur Python

New_Project_13.png

Pour Windows, il s'agit de C: \ Users \ hoge \ Documents \ env1 \ python.exe.

  1. Cliquez sur OK pour fermer.

New_Project_14.png

  1. Appuyez sur le bouton Créer (reconfirmez que la gauche est Django)

New_Project_15.png

  1. Je l'ai déjà, mais on me demande si tout va bien, alors répondez Oui

New_Project_06.png

  1. Si vous pouvez le faire ainsi, vous réussissez

New_Project_07.png

Configuration de la base de données

Les paramètres de la base de données sont dans mybook / settings.py, mais par défaut, il est déjà configuré pour utiliser SQlite3.

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

    :

# Database
# https://docs.djangoproject.com/en/1.9/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

Tout en regardant mybook / settings.py, définissez la langue et le fuseau horaire sur Japon.

# Désigne la ligne que vous avez commentée. Pour commenter Pour Mac, positionnez-le sur une ligne (s'il y a plusieurs lignes, sélectionnez la ligne) et utilisez la commande + /. Pour Windows, Ctrl + /. Hmm pratique.

# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'ja'

# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Tokyo'

Lorsque vous entrez la commande pour migrer la base de données, un fichier appelé db.sqlite3 est créé dans le répertoire directement sous le projet.


$ python manage.py migrate
Operations to perform:
  Apply all migrations: admin, 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 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

Créez un super utilisateur avec la commande suivante.

$ python manage.py createsuperuser
Nom d'utilisateur(leave blank to use 'hoge'): admin
adresse mail: [email protected]
Password: hogefuga
Password (again): hogefuga
Superuser created successfully.

En chemin, répondez aux questions suivantes.

Démarrer le serveur de développement

Démarrez le serveur de développement avec la commande python manage.py runserver pour voir si le projet fonctionne.

$ python manage.py runserver

Performing system checks...

System check identified no issues (0 silenced).
January 08, 2020 - 16:20:02
Django version 3.0.2, using settings 'mybook.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Essayez d'accéder à http://127.0.0.1:8000/ avec votre navigateur.

dango01.png

La fin du serveur de développement est control + c.

Déboguer avec PyCharm

Appuyez simplement sur la marque de bogue en haut à droite de l'écran. Vous pouvez également sélectionner Exécuter> Déboguer ..> mybook dans le menu.

debug.png

C'est OK si l'affichage suivant apparaît ci-dessous. Lorsque vous souhaitez arrêter, appuyez sur le bouton carré rouge.

stop.png

Comme un IDE typique, vous pouvez définir des points d'arrêt et vérifier des variables en cliquant sur le côté droit du numéro de ligne dans votre code.

Une fois arrêtée, la fenêtre de débogage est sur le chemin, alors appuyez sur le bouton de réduction.

fold.png

Créer une application

Créons une application appelée cms sous le projet.

cms est comme un système de gestion de contenu, comme la maintenance principale. Une application est une unité de fonctions qui composent un projet et, dans certains cas, une unité qui peut être réutilisée.

Créez-le avec la commande suivante.

$ python manage.py startapp cms

Les fichiers suivants ont été créés dans le répertoire du projet mybook.

mybook/
    cms/
        __init__.py
        admin.py
        apps.py
        migrations/
            __init__.py
        models.py
        tests.py
        views.py
    manage.py
    mybook/
       :
       :

Créer un modèle

Définissez le modèle de données que vous souhaitez définir dans la base de données dans cms / models.py.

Avant le cours, si vous n'ouvrez pas deux lignes, une ligne ondulée apparaîtra et vous serez prévenu. Il s'agit d'un mécanisme de vérification de style de code appelé pep8. De même, si la fin du code ne se termine pas par un simple saut de ligne, des lignes ondulées réapparaîtront et vous vous fâcherez, alors soyez prudent.

from django.db import models


class Book(models.Model):
    """Livres"""
    name = models.CharField('Titre de livre', max_length=255)
    publisher = models.CharField('l'éditeur', max_length=255, blank=True)
    page = models.IntegerField('nombre de pages', blank=True, default=0)

    def __str__(self):
        return self.name


class Impression(models.Model):
    """Impressions"""
    book = models.ForeignKey(Book, verbose_name='Livres', related_name='impressions', on_delete=models.CASCADE)
    comment = models.TextField('commentaire', blank=True)

    def __str__(self):
        return self.comment
        

«L'impression» est un modèle enfant associé au «livre».

Activer le modèle

Vous devez indiquer au projet que vous avez installé l'application cms. Si vous ouvrez cms / apps.py, une classe appelée CmsConfig est définie. Ajoutez ceci à la fin de ʻINSTALLED_APPS dans mybook / settings.pyavec la chaîne'cms.apps.CmsConfig',`.

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'cms.apps.CmsConfig',   #application cms
]

La commande suivante récupère les modifications dans models.py et crée un fichier de migration.

$ python manage.py makemigrations cms
Migrations for 'cms':
  cms/migrations/0001_initial.py
    - Create model Book
    - Create model Impression

Vous pouvez vérifier quel type de SQL ce fichier de migration sera avec la commande suivante.

$ python manage.py sqlmigrate cms 0001
BEGIN;
--
-- Create model Book
--
CREATE TABLE "cms_book" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "name" varchar(255) NOT NULL, "publisher" varchar(255) NOT NULL, "page" integer NOT NULL);
--
-- Create model Impression
--
CREATE TABLE "cms_impression" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "comment" text NOT NULL, "book_id" integer NOT NULL REFERENCES "cms_book" ("id") DEFERRABLE INITIALLY DEFERRED);
CREATE INDEX "cms_impression_book_id_b2966102" ON "cms_impression" ("book_id");
COMMIT;

Utilisez la commande suivante pour refléter le fichier de migration qui n'a pas été reflété dans la base de données vers la base de données.

$ python manage.py migrate cms

Operations to perform:
  Apply all migrations: cms
Running migrations:
  Applying cms.0001_initial... OK

Étant donné que Django 1.7 inclut l'outil de migration de base de données en standard, si vous souhaitez ajouter / modifier des éléments dans une nouvelle table ou une table existante, par exemple, votre travail quotidien sera le suivant.

  1. Correction de models.py
  2. $ python manage.py nom de l'application makemigrations… ramasser les modifications dans models.py et créer un fichier de migration
  3. $ python manage.py migrate… Reflète le fichier migrate dans la base de données

Activer le site de gestion

A partir de là, la bonne chose à propos de Django.

Django n'a pas de génération de modèle d'application comme l'échafaudage, c'est-à-dire la génération automatique de CRUD (Créer, Lire, Mettre à jour, Supprimer). Au lieu de cela, il existe un site de gestion, à partir duquel toutes les données de maintenance de base peuvent être entrées.

Affiche le site de gestion.

  1. Démarrez le serveur de développement avec python manage.py runserver.

  2. Accédez à http: //127.0.0.1: 8000 / admin / avec un navigateur.

  3. Connectez-vous en tant que super utilisateur ʻadmin / hogefugainitialisé avec le premier$ python manage.py createuperuser`.

django02.jpg

Vous ne pouvez encore voir que les groupes et les utilisateurs.

django03.jpg

Autoriser la modification du modèle cms sur admin

Ajoutez le modèle que vous souhaitez afficher sur le site d'administration dans cms / admin.py.

from django.contrib import admin
from cms.models import Book, Impression

admin.site.register(Book)
admin.site.register(Impression)

Jetons un nouveau coup d'œil à http: //127.0.0.1: 8000 / admin /.

django04.jpg

Veuillez essayer d'ajouter, de modifier et de supprimer des données.

django05.jpg

django06.jpg

Personnaliser la page de liste des sites de gestion

Lorsque vous consultez la liste des sites de gestion, dans models.py

def __str__(self):

Celui défini dans est visible comme nom de l'enregistrement.

Modifions cms / admin.py pour que nous puissions voir un peu plus tout l'élément de l'enregistrement.

Avant le cours, si vous n'ouvrez pas deux lignes, une ligne ondulée apparaîtra et vous serez prévenu.

from django.contrib import admin

from cms.models import Book, Impression

# admin.site.register(Book)
# admin.site.register(Impression)


class BookAdmin(admin.ModelAdmin):
    list_display = ('id', 'name', 'publisher', 'page',)  #Articles que vous souhaitez lister
    list_display_links = ('id', 'name',)  #Éléments sur lesquels il est possible de cliquer avec le lien de correction


admin.site.register(Book, BookAdmin)


class ImpressionAdmin(admin.ModelAdmin):
    list_display = ('id', 'comment',)
    list_display_links = ('id', 'comment',)
    raw_id_fields = ('book',)   #Ne tirez pas sur la clé externe (empêche l'expiration du délai lorsque le nombre de données augmente)


admin.site.register(Impression, ImpressionAdmin)

django07.jpg

Et ça.

Vous pouvez facilement répertorier, enregistrer, modifier et supprimer les tables que vous avez ajoutées à votre modèle. Vous n'avez pas besoin d'explication sur la façon de fabriquer un CRUD, non?

Cela n'explique pas Django, alors expliquons comment créer un CRUD par vous-même.

Continuez vers Introduction à Python Django (4)

Recommended Posts

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 Python Django (5)
Premiers pas avec Python
Premiers pas avec Django 1
Premiers pas avec Python
Premiers pas avec Django 2
Introduction aux fonctions Python
Premiers pas avec Django avec PyCharm
Premiers pas avec Python responder v2
Premiers pas avec les applications Web Python
Premiers pas avec Python pour les classes PHPer
Premiers pas avec Python Bases de Python
Premiers pas avec les algorithmes génétiques Python
Premiers pas avec Python 3.8 sous Windows
Premiers pas avec Python pour les fonctions PHPer
Premiers pas avec python3 # 1 Apprenez les connaissances de base
Premiers pas avec Android!
Premiers pas avec Python Web Scraping Practice
Premiers pas avec apache2
Introduction à l'optimisation
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 Numpy
Premiers pas avec Spark
Premiers pas avec Pydantic
Premiers pas avec Jython
Premiers pas avec Heroku-Viewing Hello World en Python Django avec Raspberry PI 3
Démarrer avec Python avec 100 coups sur le traitement du langage
[Français] Premiers pas avec Rust pour les programmeurs Python
Django Getting Started Part 2 avec eclipse Plugin (PyDev)
Premiers pas avec AWS IoT facilement en Python
Django Getting Started Partie 3 sur Python3 & MySQL Connector
Matériel à lire lors de la mise en route de Python
Paramètres pour démarrer avec MongoDB avec python
Faites Django avec CodeStar (Python3.6.8, Django2.2.9)
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 Premiers pas: 1_Construction de l'environnement
Python3 + Django ~ Mac ~ avec Apache
Django Getting Started: intégration 3_Apache
Lancez-vous avec Django! ~ Tutoriel ④ ~
Lancez-vous avec Django! ~ Tutoriel ⑥ ~
Commencez avec Python! ~ ② Grammaire ~
Premiers pas avec python3 # 2 En savoir plus sur les types et les variables
Premiers pas avec Google App Engine pour Python et PHP
a commencé python
Lien pour commencer avec python
Introduction à Git (1) Stockage d'historique
Premiers pas avec Sphinx. Générer docstring avec Sphinx