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.
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.)
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.
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.
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.
Wenn Sie die obigen vier Dateien der Reihe nach erstellen oder ändern, funktioniert dies mindestens.
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
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
myapp
zu INSTALLED_APPS hinzugefügt
[os.path.join (BASE_DIR, 'templates')],
zu TEMPLATES hinzugefügt
SPRACHE auf ja
behoben
TIME_ZONE nach Asia / Tokyo
korrigiert
--Added STATICFILES_DIRS = [os.path.join (BASE_DIR, 'static'),]
--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.
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.
Es wäre schön, wenn die folgenden Funktionen hier implementiert werden könnten.
Zunächst möchte ich eine Box erstellen, um Informationen zu platzieren = ein Modell zu erstellen.
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.
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).
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.
--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