[PYTHON] Django-Anfänger erstellen einfache Apps 1

Einführung

Es ist anderthalb Jahre her, seit ich angefangen habe, Django zu lernen. Schließlich konnte ich mit meinen eigenen Händen eine einfache Webanwendung (modoki) erstellen, die ich nach Überprüfung aufzeichnen werde. Wir hoffen, dass Sie das kleine Wissen, das der ewige Programmierer für Anfänger gesammelt hat, teilen und für diejenigen verwenden, die beim ersten Schritt stolpern.

Zweck

Wir werden komplizierte und problematische Dinge so weit wie möglich reduzieren, eine vereinfachte Webanwendung erstellen und uns darauf spezialisieren, zu lernen, wie Django funktioniert. Es testet also nicht wie Django Tutorial Nr. 5, es verwendet kein CSS und es wird nicht bereitgestellt. Das sogenannte Frontend ist vorerst reserviert. Verstehe nur, was verbunden ist und wie es sich um das Backend bewegt. Wenn Sie CRUD (Erstellen, Lesen, Aktualisieren, Löschen) implementieren und sich sicher bewegen, erreichen Sie das Ziel. (Bitte fragen Sie mich nicht, ob es sich um eine Webanwendung handelt, obwohl ich keine Verbindung zum Internet herstellen kann.)

Ziel

Leute, die die Django-Tutorials und Django Girls abgeschlossen haben, aber nicht zu wissen scheinen, was los ist, und denken, dass es unmöglich ist, selbst eine Web-App zu erstellen.

Serientabelle für Anfänger zum Erstellen einfacher Apps

Umgebung

Das große Bild von Django

Es wird oft gesagt, dass "Django ein Webanwendungsframework ist, das Python verwendet", aber es fällt mir nicht ein. Was ist eine Web-App von dem, was ich verstehe? Wenn Sie gefragt werden, welche Informationen (oder Daten) aus der Datenbank (Datenbank) extrahiert und angezeigt werden, wie lautet dann das Framework? Auf die Frage "Ein Werkzeugkasten mit verschiedenen Werkzeugen zur Erleichterung der Arbeit (Extrahieren und Anzeigen von Informationen)" wird geantwortet.

Was machst du in Django?

Wenn Sie sich vorstellen, was Django intern tut, sieht es wie in der folgenden Abbildung aus. Ich nehme die Informationen aus der Schachtel voller Informationen und poste sie an der Pinnwand.

IMG_0354.jpg
  1. models.py: Erstellen Sie einen Container für Informationen
  2. urls.py: Entscheiden Sie, wo die Informationen angezeigt werden sollen (auf welchem schwarzen Brett sie platziert werden sollen).
  3. views.py: Entscheiden Sie, wie Informationen gesammelt und verarbeitet werden sollen
  4. Vorlage: Entscheiden Sie, wie die Informationen eingefügt werden sollen

Wenn Sie die obigen vier Dateien der Reihe nach erstellen oder ändern, funktioniert dies mindestens.

0. Machen Sie sich bereit (bis zur Raketenstartseite)

Wenn Sie das Tutorial abgeschlossen haben, sollten Sie in der Lage sein, zu gehen, bis Django funktioniert. Die folgenden Links dienen als Referenz.

Verfahren zum Entwickeln von Django mit VSCode

1. Machen Sie sich bereit (schließen Sie das gesamte Setup ab)

Geben Sie nach dem Anzeigen der Raketenstartseite den Befehl ein, um eine App aus der virtuellen Umgebung zu erstellen. Der Name dieser App ist myapp

(myenv)$ python manage.py startapp myapp

Ändern Sie dann config / settings.py

--Erstellen Sie das Vorlagenverzeichnis in derselben Hierarchie wie manage.py --Erstellen Sie ein statisches Verzeichnis in derselben Hierarchie wie manage.py

Es sollte die folgende Verzeichnisstruktur und Dateistruktur haben (Auszüge nur der Hauptverzeichnisse).

.
├── config    #Ich habe config als Referenz für "Basic Django Lehrbücher, die im Feld verwendet werden können" verwendet.
│   ├── 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        #Der Speicherort des statischen Verzeichnisses und des Vorlagenverzeichnisses hängt vom Lernprogramm ab
└── templates        #Es kann anders sein, aber verwalten.Es scheint, dass die gleiche Hierarchie wie py gut ist

Damit sind alle Vorbereitungsschritte abgeschlossen.

2. Design

Wenn Sie sich ein Ziel setzen. Die erstellte Webanwendung ist "Movie Viewing Record". Eine Liste der Filme, die ich gesehen habe, wird in der Liste angezeigt. Wenn ich auf den Titel klicke, wird der Eindruck des Films angezeigt. Eine sehr einfache Version eines Yahoo-Films. Ziel, wenn Sie diese CRUD implementieren können (Erstellen, Lesen, Aktualisieren, Löschen). Wenn Sie dieses Ziel nicht festlegen, haben Sie kein Ende, wenn Sie anfangen, daran festzuhalten, und wenn Sie anfangen, schwierige Funktionen, ein schönes Erscheinungsbild und Benutzerfreundlichkeit zu verfolgen, werden Sie von der Entfernung des Ziels überwältigt sein. Das Folgende ist ein vages Bild des fertigen Produkts.

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

Es wäre schön, wenn die folgenden Funktionen hier implementiert werden könnten.

  1. Eine Liste der Filmansichten wird angezeigt (Lesen)
  2. Klicken Sie auf den Titel, um den Detailbildschirm anzuzeigen (Lesen).
  3. Geben Sie den Filmtitel, den Filmregisseur, das Anzeigedatum und die Impression ein (Erstellen)
  4. Korrigieren Sie den eingegebenen Eindruck (Update)
  5. Der Film war so schrecklich, dass ich die Informationen gelöscht und beschlossen habe, sie nicht anzusehen (löschen)

Zunächst möchte ich eine Box erstellen, um Informationen zu platzieren = ein Modell zu erstellen.

3. Erstellen Sie models.py

Ich habe vorhin geschrieben, dass das Erstellen eines Modells "Erstellen einer Box zum Einfügen von Informationen" bedeutet, mit anderen Worten "Erstellen einer Tabelle". Ein Bild, in dem mehrere kleine Tabellen erstellt und zu einer großen Liste "verknüpft" werden. Dieses Mal erstellen wir eine Tabelle namens Movie, eine Tabelle namens Director und eine Tabelle namens Log. Der Quellcode lautet wie folgt.

myapp/models.py



from django.db import models #Bringen Sie Werkzeuge mit, um einen Tisch zu machen
from django.utils import timezone #Bringen Sie Werkzeuge mit, um mit der Zeit umzugehen


class Director(models.Model): #Machen Sie eine Tabelle namens Director
    name = models.CharField(max_length=100, verbose_name="unter der Regie von") #nameというfieldに文字列でunter der Regie von名を入れる宣言
    def __str__(self): #Die folgenden zwei Zeilen sind Funktionen zum Anzeigen des Namens des Direktors, wenn Daten über die Verwaltungssite eingegeben werden.
        return self.name


class Movie(models.Model): #Machen Sie eine Tabelle namens Film
    title = models.CharField(max_length=100, verbose_name="Titel")
    watch_date = models.DateField() #Ich habe ein Tool namens Zeitzone mitgebracht, damit ich Datumsdaten eingeben kann
    director = models.ForeignKey(Director, on_delete=models.CASCADE, verbose_name="unter der Regie von", related_name='movie')
    def __str__(self):            #Erklärung, dass das Feld "Director" aus der "Tabelle" Director "verknüpft wird
        return self.title         #related_Der Name wird zu einem anderen Zeitpunkt ausführlich erläutert.


class Log(models.Model): #Erstellen Sie eine Tabelle mit dem Namen Log
    text = models.TextField() #Erklärung, dass das Feld Text ein Ort ist, an dem viele Zeichenfolgen eingegeben werden können
    movie = models.ForeignKey(Movie, on_delete=models.CASCADE, verbose_name="Titel", related_name='log')
    def __str__(self):            #Erklärung, dass das Feld "Film" aus der "Tabelle" Film "verknüpft wird
        return self.text          #self.Es wird mit dem Inhalt angezeigt, der eingegeben wurde, als Daten über die Verwaltungssite mit Text eingegeben wurden

Stellen Sie sich vor, Sie können mit dem obigen Quellcode so etwas wie die folgende Abbildung erstellen. B594169D-3FD9-4CB6-ACD9-756DDE66F7D2.jpeg

Sobald models.py erstellt wurde, handelt es sich um eine Konstruktionszeichnung, die also tatsächlich in der Datenbank angezeigt wird.

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

Die Tabelle ist vollständig, es gibt jedoch keinen Inhalt (Daten). Sie können die Daten über die "python manage.py shell" eingeben, aber es ist immer einfacher, sich dies vorzustellen, indem Sie die Daten von der Verwaltungssite eingeben. Registrieren Sie das Modell in admin.py, um die Admin-Site zu verwenden

myapp/admin.py



from django.contrib import admin
from myapp.models import Director, Movie, Log    #Fügen Sie diesen Teil hinzu

admin.site.register(Director)    #Vielleicht gibt es eine Möglichkeit, sich alle auf einmal zu registrieren
admin.site.register(Movie)       #Ich würde es begrüßen, wenn mich jemand unterrichten könnte
admin.site.register(Log)

Richten Sie einen Superuser für die Verwendung der Admin-Site ein

(myenv) $ python manage.py createsuperuser
#Legen Sie Benutzername, E-Mail-Adresse, Passwort usw. fest.

Geben Sie einige Daten von der Admin-Site ein (127.0.0.1:8000/admin). F4284CE1-80D6-42AD-8935-8E8DA27B2C54.jpeg

Nachdem models.py abgeschlossen ist und die Daten eingegeben wurden, ist die erste Stufe abgeschlossen. Das nächste Mal werde ich erklären, wo in urls.py angezeigt wird, wie Informationen in views.py abgerufen werden, wie eine Vorlage erstellt und diese Informationen angezeigt werden.

Zusammenfassung

--Django erleichtert die Arbeit, indem die in der Datenbank gespeicherten Informationen abgerufen und angezeigt werden.

Fahren Sie mit dem nächsten Mal fort Django-Anfänger erstellen einfache Apps 2

Recommended Posts

Django-Anfänger erstellen einfache Apps 1
Django-Anfänger erstellen einfache Apps 2
Django-Anfänger erstellen einfache Apps 5
Django-Anfänger erstellen einfache Apps 4
Erstellen Sie erste Einstellungen und Mitarbeiter-Apps in Django
Erstellen Sie einen Django-Zeitplan
Django Oscar einfaches Tutorial
Django Todo Listenerstellung
Erstellen Sie eine API mit Django
Erstellen Sie einen (einfachen) REST-Server
ToDo-Listenerstellung [Python Django]
Erstellen Sie eine Homepage mit Django
Shell zum Erstellen eines Django-Projekts
Erstellen Sie einen Django-Anmeldebildschirm
Erstellen Sie Ihre eigene Django-Middleware
Erstellen Sie einen einfachen Textlint-Server
Erstellen und listen Sie Django-Modelle auf
(Für Anfänger) Versuchen Sie, mit Django eine einfache Web-API zu erstellen
Hallo Welt (Anfänger) mit Django
Erstellen Sie mit Django eine API für die soziale Integration von Smartphone-Apps
Rails-Benutzer versuchen, mit Django eine einfache Blog-Engine zu erstellen
Schritte zum Erstellen eines Django-Projekts
Django-Anfänger versuchten, die Umgebung aufzubauen
[Für Anfänger] Django -Entwicklungsumgebung Bau-
Erstellen Sie eine neue Anwendung mit Python, Django
[Django] Erstellen Sie Ihre eigene 403, 404, 500-Fehlerseite
Erstellen Sie mit Django einen Datei-Uploader
Erstellen Sie mit Django einen LINE-Bot