Erste Schritte mit Python Django (3)

Beginnen Sie mit Django

Dokument

Es ist eine gute Idee, "Wenn Sie von nichts anfangen: Übersicht" und "Tutorial hier: Teil 1-7" zu lesen, aber Sie können diesen Kurs zuerst ausprobieren.

Versuchen Sie es mit Django

Ein Projekt erstellen

Erstellen wir eine App, die einfache Bücher verwaltet.

Erstellen Sie zunächst ein Projekt namens mybook. Verwenden Sie dazu den Befehl django-admin startproject mybook.

Wenn Sie versuchen, ein Projekt mit PyCharm zu erstellen, wird anscheinend ein Ordner mit dem Namen PycharmProjects erstellt, daher werde ich ihn darunter erstellen

Stellen Sie sicher, dass Sie sich in der virtuellen Umgebung von (env1) befinden. Wenn Sie bereits haben, benötigen Sie nicht die folgenden Mac workon env1 und Windows Scripts \ enabled.

Für Mac

$ workon env1

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

Für Windows,

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

Von hier aus kehrt die Erklärung zur Mac-Annahme zurück. Für Windows lesen Sie bitte jede Umgebung.

Datei erstellt in ~ / PycharmProjects /

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

Gehen Sie in das mybook-Verzeichnis.

$ cd mybook

Öffnen Sie ein Projekt in PyCharm

Öffnen wir das generierte Projekt mit PyCharm.

  1. Wählen Sie Neues Projekt erstellen

Welcome_to_PyCharm.jpg

  1. Wählen Sie links Django.

New_Project_01.png

  1. Speicherort: Klicken Sie auf das Ordnersymbol rechts und wählen Sie den soeben generierten Mybook-Ordner aus.

New_Project_02.png

Unter Windows ist dies C: \ Users \ hoge \ Pycharm Projects \ mybook.

  1. Klicken Sie auf das Dreiecksymbol von Project Interpreter:, um es zu erweitern, und wählen Sie "..." von Interpriter für vorhandenen Interpreter aus.

New_Project_11.png

  1. Wählen Sie unter Virtualenv Environment> Interpreter "...".

New_Project_12.png

  1. Wählen Sie Python3 für die virtuelle Umgebung env1 als Python-Interpreter aus

New_Project_13.png

Unter Windows ist dies C: \ Users \ hoge \ Documents \ env1 \ python.exe.

  1. Klicken Sie zum Schließen auf OK.

New_Project_14.png

  1. Klicken Sie auf die Schaltfläche Erstellen (bestätigen Sie erneut, dass links Django ist).

New_Project_15.png

  1. Ich habe es bereits, aber ich werde gefragt, ob es in Ordnung ist. Antworte also mit Ja

New_Project_06.png

  1. Wenn Sie es so machen können, sind Sie erfolgreich

New_Project_07.png

Datenbankeinrichtung

Die Datenbankeinstellungen befinden sich in "mybook / settings.py", aber standardmäßig ist bereits SQlite3 verwendet.

# 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'),
    }
}

Stellen Sie beim Betrachten von "mybook / settings.py" die Sprache und Zeitzone auf Japan ein.

# Bedeutet die Zeile, die Sie auskommentiert haben. Auskommentieren Positionieren Sie es für Mac in einer Zeile (wenn mehrere Zeilen vorhanden sind, wählen Sie die Zeile aus) und befehlen Sie +/-. Für Windows Strg + /. Hmm bequem.

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

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

Wenn Sie den Befehl zum Migrieren der Datenbank eingeben, wird eine Datei mit dem Namen "db.sqlite3" im Verzeichnis direkt unter dem Projekt erstellt.


$ 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

Erstellen Sie einen Superuser mit dem folgenden Befehl.

$ python manage.py createsuperuser
Nutzername(leave blank to use 'hoge'): admin
Mail Adresse: [email protected]
Password: hogefuga
Password (again): hogefuga
Superuser created successfully.

Beantworten Sie unterwegs die folgenden Fragen.

Starten Sie den Entwicklungsserver

Starten Sie den Entwicklungsserver mit dem Befehl "python manage.py runserver", um festzustellen, ob das Projekt funktioniert.

$ 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.

Versuchen Sie, mit Ihrem Browser auf http://127.0.0.1:8000/ zuzugreifen.

dango01.png

Das Ende des Entwicklungsservers ist "control + c".

Debuggen mit PyCharm

Drücken Sie einfach die Fehlermarkierung oben rechts auf dem Bildschirm. Alternativ können Sie im Menü Ausführen> Debuggen ..> Mybook auswählen.

debug.png

Es ist in Ordnung, wenn die folgende Anzeige unten angezeigt wird. Wenn Sie anhalten möchten, drücken Sie das rote Quadrat.

stop.png

Sie können Haltepunkte setzen und Variablen überprüfen, indem Sie wie bei einer allgemeinen IDE auf die rechte Seite der Zeilennummer des Codes klicken.

Nach dem Stoppen ist das Debug-Fenster im Weg, drücken Sie also die Kollaps-Taste.

fold.png

Eine Anwendung erstellen

Lassen Sie uns unter dem Projekt eine Anwendung namens cms erstellen.

cms ist wie ein Inhaltsverwaltungssystem, wie die Hauptwartung. Eine Anwendung ist eine Funktionseinheit, aus der ein Projekt besteht, und kann in einigen Fällen wiederverwendet werden.

Erstellen Sie es mit dem folgenden Befehl.

$ python manage.py startapp cms

Die folgenden Dateien wurden im Verzeichnis des mybook-Projekts erstellt.

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

Modell erstellen

Definieren Sie das Datenmodell, das Sie in der Datenbank definieren möchten, in cms / models.py.

Wenn Sie vor dem Unterricht nicht zwei Zeilen öffnen, wird eine Wellenlinie angezeigt und Sie werden gewarnt. Es ist ein Überprüfungsmechanismus für den Codestil namens pep8. Wenn das Ende des Codes nicht nur mit einem Zeilenumbruch endet, werden wieder Wellenlinien angezeigt und Sie werden wütend. Seien Sie also vorsichtig.

from django.db import models


class Book(models.Model):
    """Bücher"""
    name = models.CharField('Buchtitel', max_length=255)
    publisher = models.CharField('der Herausgeber', max_length=255, blank=True)
    page = models.IntegerField('Seitenzahl', blank=True, default=0)

    def __str__(self):
        return self.name


class Impression(models.Model):
    """Impressionen"""
    book = models.ForeignKey(Book, verbose_name='Bücher', related_name='impressions', on_delete=models.CASCADE)
    comment = models.TextField('Kommentar', blank=True)

    def __str__(self):
        return self.comment
        

Der "Eindruck" ist ein Kindermodell, das mit dem "Buch" verbunden ist.

Aktivieren Sie das Modell

Sie müssen dem Projekt mitteilen, dass Sie die CMS-Anwendung installiert haben. Wenn ich cms / apps.py öffne, wird eine Klasse namens CmsConfig definiert. Fügen Sie dies am Ende von "INSTALLED_APPS" in "mybook / settings.py" mit der Zeichenfolge "cms.apps.CmsConfig", "hinzu.

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

Der folgende Befehl übernimmt die Änderungen in models.py und erstellt eine Migrationsdatei.

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

Mit dem folgenden Befehl können Sie überprüfen, um welche Art von SQL es sich bei dieser Migrationsdatei handelt.

$ 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;

Verwenden Sie den folgenden Befehl, um die Migrationsdatei, die nicht in der Datenbank enthalten ist, in die Datenbank wiederzugeben.

$ python manage.py migrate cms

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

Da Django 1.7 standardmäßig das Datenbankmigrationstool enthält, ist Ihre tägliche Routinearbeit wie folgt, wenn Sie beispielsweise Elemente in einer neuen Tabelle oder einer vorhandenen Tabelle hinzufügen / ändern möchten.

  1. Fix models.py
  2. $ python manage.py makemigrations App-Name… Änderungen in models.py übernehmen und eine Migrationsdatei erstellen
  3. $ python manage.py migrate… Reflektiert die Migrationsdatei in der Datenbank

Verwaltungssite aktivieren

Von hier an das Gute an Django.

Django verfügt nicht über eine Generierung von Anwendungsvorlagen wie ein Gerüst, dh eine automatische Generierung von CRUD (Erstellen, Lesen, Aktualisieren, Löschen). Stattdessen gibt es eine Verwaltungssite, von der aus alle Stammwartungsdaten eingegeben werden können.

Lassen Sie uns die Verwaltungssite anzeigen.

  1. Starten Sie den Entwicklungsserver mit "python manage.py runserver".

  2. Greifen Sie mit einem Browser auf http: //127.0.0.1: 8000 / admin / zu.

  3. Melden Sie sich als Superuser admin / hogefuga an, der mit dem ersten $ python manage.py createuperuser initialisiert wurde.

django02.jpg

Sie können noch nur Gruppen und Benutzer sehen.

django03.jpg

Ermöglichen Sie die Bearbeitung des CMS-Modells in Admin

Fügen Sie das Modell, das Sie auf der Administrationssite anzeigen möchten, zu "cms / admin.py" hinzu.

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

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

Werfen wir noch einmal einen Blick auf http: //127.0.0.1: 8000 / admin /.

django04.jpg

Bitte versuchen Sie, Daten hinzuzufügen, zu ändern und zu löschen.

django05.jpg

django06.jpg

Passen Sie die Verwaltungsseitenlistenseite an

Wenn Sie sich die Liste der Verwaltungsseiten in models.py ansehen

def __str__(self):

Der eingestellte wird als Datensatzname angezeigt.

Lassen Sie uns cms / admin.py so ändern, dass wir den gesamten Eintrag etwas mehr sehen können.

Wenn Sie vor dem Unterricht nicht zwei Zeilen öffnen, wird eine Wellenlinie angezeigt und Sie werden gewarnt.

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',)  #Elemente, die Sie auflisten möchten
    list_display_links = ('id', 'name',)  #Elemente, die mit dem Korrekturlink angeklickt werden können


admin.site.register(Book, BookAdmin)


class ImpressionAdmin(admin.ModelAdmin):
    list_display = ('id', 'comment',)
    list_display_links = ('id', 'comment',)
    raw_id_fields = ('book',)   #Ziehen Sie den externen Schlüssel nicht herunter (verhindert Zeitüberschreitung, wenn die Anzahl der Daten zunimmt).


admin.site.register(Impression, ImpressionAdmin)

django07.jpg

Wie wär es damit.

Sie können die Tabellen, die Sie Ihrem Modell hinzugefügt haben, einfach auflisten, registrieren, ändern und löschen. Sie brauchen keine Erklärung, wie man ein CRUD macht, oder?

Das erklärt Django nicht, also lassen Sie uns erklären, wie Sie selbst ein CRUD erstellen.

Fahren Sie fort mit Einführung in Python Django (4)

Recommended Posts

Erste Schritte mit Python Django (1)
Erste Schritte mit Python Django (4)
Erste Schritte mit Python Django (3)
Einführung in Python Django (6)
Erste Schritte mit Python Django (5)
Erste Schritte mit Python
Erste Schritte mit Django 1
Erste Schritte mit Python
Erste Schritte mit Django 2
Einführung in Python-Funktionen
Erste Schritte mit Django mit PyCharm
Erste Schritte mit Python Responder v2
Erste Schritte mit Python-Webanwendungen
Erste Schritte mit Python für PHPer-Klassen
Erste Schritte mit Python Grundlagen von Python
Erste Schritte mit genetischen Python-Algorithmen
Erste Schritte mit Python 3.8 unter Windows
Erste Schritte mit Python für PHPer-Funktionen
Erste Schritte mit Python3 # 1 Grundkenntnisse erlernen
Erste Schritte mit Android!
Erste Schritte mit Python Web Scraping Practice
Erste Schritte mit apache2
Einführung in die Optimierung
Erste Schritte mit Python für PHPer-Super Basics
Erste Schritte mit Python Web Scraping Practice
Erste Schritte mit Dynamo von Python Boto
Erste Schritte mit Numpy
Erste Schritte mit Spark
Erste Schritte mit Pydantic
Erste Schritte mit Jython
Erste Schritte mit Heroku-Viewing Hello World in Python Django mit Raspberry PI 3
Erste Schritte mit Python mit 100 Klopfen bei der Sprachverarbeitung
[Übersetzung] Erste Schritte mit Rust für Python-Programmierer
Django Erste Schritte Teil 2 mit dem Eclipse Plugin (PyDev)
Erste Schritte mit AWS IoT in Python
Erste Schritte mit Django Teil 3 über Python3 und MySQL Connector
Materialien zum Lesen, wenn Sie mit Python beginnen
Einstellungen für den Einstieg in MongoDB mit Python
Mach Django mit CodeStar (Python3.6.8, Django2.2.9)
Einführung in Tkinter 2: Button
Fangen Sie mit Django an! ~ Tutorial ⑤ ~
Erste Schritte mit Go Assembly
Erste Schritte mit PKI mit Golang ―― 4
Django Erste Schritte: 2_ Erstellen eines Projekts
Django Erste Schritte: 1_Umgebungsgebäude
Python3 + Django ~ Mac ~ mit Apache
Erste Schritte mit Django: 3_Apache-Integration
Fangen Sie mit Django an! ~ Tutorial ④ ~
Fangen Sie mit Django an! ~ Tutorial ⑥ ~
Beginnen Sie mit Python! ~ ② Grammatik ~
Erste Schritte mit Python3 # 2 Erfahren Sie mehr über Typen und Variablen
Erste Schritte mit Google App Engine für Python und PHP
Python gestartet
Link, um mit Python zu beginnen
Einführung in Git (1) History-Speicher
Erste Schritte mit Sphinx. Generieren Sie Docstring mit Sphinx