[PYTHON] Django Tutorial (Blog App erstellen) ① - Vorbereitung, Erstellung der obersten Seite

Dieses Mal werden wir Django verwenden, um eine Blog-App zu erstellen, mit der Sie Artikel veröffentlichen können.

Wir werden es in Serie einführen, aber zuerst werden wir es lokal erstellen und dann in einer Docker-Konfiguration konfigurieren, es in AWS bereitstellen und mit CircleCI eine Reihe automatisierter Tests und Bereitstellungen erstellen.

Was ist Django?

Django ist ein Webanwendungsframework, das in Python implementiert werden kann.

Ein Framework ist eine Software, die eine Sammlung von Funktionen darstellt, die beim Entwickeln einer Anwendung verwendet werden. Durch die Einführung des Frameworks können Sie effizient mit der Webanwendung fortfahren.

Dieses Mal werden wir eine Blog-App erstellen, aber mit Django können Sie auf einfache Weise hochwertige Webanwendungen wie Content-Management-Systeme und Wikis, soziale Netzwerke, Nachrichtenseiten usw. mithilfe von Datenbanken mit weniger Code erstellen. Eine einfache Webanwendung kann in wenigen Minuten erstellt werden. Natürlich können Sie die Funktionalität erweitern, um komplexe Webanwendungen zu erstellen.

Django wird auch in bekannten Web-Apps wie Instagram verwendet und ist zu einem bemerkenswerten Framework geworden, das Ruby on Rails in Ruby entspricht.

Umgebung

Erstellen Sie zunächst ein Arbeitsverzeichnis. Der Name hier kann alles sein, aber jetzt nennen wir es Blog.

mkdir blog
cd blog

Installation von pipenv

Wenn Sie die Basisumgebung nicht verschmutzen, können Sie den Einfluss anderer Module eliminieren. Erstellen Sie also eine virtuelle Umgebung mit pipenv.

pip install pipenv
#Abhängig von der Umgebung können Sie pip möglicherweise nicht direkt verwenden, also python3-Installieren Sie mit m pip install pipenv

Führen Sie nach der Installation den folgenden Befehl im Arbeitsordner aus.

pipenv shell

Wenn Sie nach der Ausführung die virtuelle Umgebung betreten können, wird die Zeichenfolge entsprechend dem Verzeichnisnamen am Anfang der Befehlszeile angezeigt.

(blog)bash-3.2$

Installieren Sie Django

Sie können pipenv install django auch direkt ausführen, um Django zu installieren. Wenn Sie Docker später verwenden möchten, erstellen Sie eine Datei mit dem Namen require.txt direkt unter dem Arbeitsverzeichnis. Ich werde die notwendigen Module beschreiben.

Im Moment brauche ich nur Django, also schreibe ich es zusammen mit den Versionsinformationen wie folgt:

requirements.txt


Django==3.1.0

Modulinstallation

Installieren Sie das Modul basierend auf den Anforderungen.txt, indem Sie den folgenden Befehl ausführen. Hier sollte nur Django installiert werden.

pipenv install -r requirements.txt

Erstellen eines Django-Projekts

Führen Sie direkt unter dem Blog-Verzeichnis aus

django-admin startproject mysite

Ich denke, dass die Dateistruktur direkt unter dem übergeordneten Projekt so aussieht.

├── Pipfile
├── Pipfile.lock
├── mysite
│   ├── manage.py
│   └── mysite
│       ├── __init__.py
│       ├── settings.py
│       ├── urls.py
│       └── wsgi.py
└── requirements.txt

Teststart des Django-Servers

Es hat eine Funktion zum Starten des Entwicklungsservers. (Wenn Sie Ruby on Rails ausgeführt haben, sollten Rails -s leicht zu verstehen sein.)

Um dies zu tun, ist es bequemer, in das Verzeichnis zu wechseln, in dem sich die Datei manage.py befindet. Wechseln Sie daher vor dem Ausführen in das Verzeichnis mysite / mysite.

cd mysite
python3 manage.py runserver

Wenn es normal ausgeführt werden kann, wird die folgende Ausgabe ausgegeben.

October 16, 2020 - 21:30:23
Django version 3.1, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Beachten Sie, dass dieser Teil eine Nachricht ist, die ausgegeben wird, da der Integrationsprozess in die Datenbank mit dem Namen migrate noch nicht abgeschlossen ist. Im Moment ist es jedoch in Ordnung, sich darüber keine Sorgen zu machen.

You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

Nachdem der Django-Entwicklungsserver gestartet wurde, überprüfen Sie ihn in Ihrem Browser. Geben Sie 127.0.0.1:8000 in die Adressleiste eines Browsers wie Chrome ein und drücken Sie die Eingabetaste.

image.png

Dies ist der Anfang von allem. Wenn Sie diesen Bildschirm sehen, ist der erste Schritt abgeschlossen! Herzliche Glückwünsche.

Projekt Einstellungen

Übrigens, als Sie früher auf den Testserver zugegriffen haben, wurde er in Englisch geschrieben. Diese Einstellungen können in mysite / settings.py vorgenommen werden. Standardmäßig sind die Sprachanzeige und die Zeitzone an die englischsprachige Welt angepasst.

mysite/settings.py(before)


LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

Ich werde das wie folgt ändern.

mysite/settings.py(after)


LANGUAGE_CODE = 'ja'

TIME_ZONE = 'Asia/Tokyo'

Wenn Sie erneut auf den Testserver zugreifen, sehen Sie, dass dieser in Japanisch geschrieben ist. (Obwohl dies auf diesem Bildschirm nicht bestätigt werden kann, ist die Zeitzone auch auf Tokio eingestellt.)

image.png

Erstellen einer Django-App

Ich habe früher ein Projekt mit dem Befehl start-project erstellt, aber als nächstes werde ich eine Anwendung erstellen. Es ist leicht zu verwirren, aber das zugrunde liegende Projekt und die einzelnen Apps sind unterschiedlich.

Dies ist die Erklärung auf der offiziellen Seite.

Was ist der Unterschied zwischen einem Projekt und einer App? Eine App ist eine Webanwendung, die beispielsweise ein Weblog-System, eine Datenbank mit öffentlichen Aufzeichnungen oder eine kleine Abstimmungs-App ausführt. Ein Projekt ist eine Sammlung spezifischer Website-Konfigurationen und Apps. Ein Projekt kann mehrere Apps enthalten. Die App kann in mehreren Projekten vorhanden sein.

Jetzt erstellen wir eine Blog-App. Führen Sie den folgenden Befehl direkt unter dem mysite-Projekt aus (wo sich die Datei manage.py befindet).

python3 manage.py startapp blog

Die aktuelle Verzeichnisstruktur sieht folgendermaßen aus.

.
├── db.sqlite3
├── manage.py
├── mysite
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── blog
    ├── __init__.py
    ├── admin.py
    ├── apps.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py

Sie können sehen, dass verschiedene Dateien unter dem Blog erstellt werden.

Jetzt müssen wir dem Projekt mitteilen, dass diese App erstellt wurde.

In mysite / settings.py befindet sich eine Spalte mit dem Namen "INSTALLED_APPS". Lassen Sie uns also die Existenz der Blog-App darin mitteilen.

mysite/settings.py


INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog.apps.BlogConfig', #Hier hinzufügen
]

Vorlagen-, Ansichts- und URL-Einstellungen

Erstens "Ändern Sie jede Vorlage.

Die Vorlage ist der Teil, der das Erscheinungsbild erstellt und der HTML-Datei entspricht.

Erstellen Sie einen Vorlagenordner direkt unter dem Mysite-Projekt, einen Blog-Ordner darunter und eine index.html darunter.

.
├── blog
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   └── views.py
├── db.sqlite3
├── manage.py
├── mysite
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── templates
    └── blog
        └── index.html ← Hier erstellen

Der Inhalt von index.html ist vorerst angemessen.

index.html


<h1>Hello, from Django!</h1>

Sie müssen dem Projekt auch mitteilen, wo Sie den Vorlagenordner erstellt haben. Fügen Sie genau wie beim Festlegen von INSTALLED_APPS Folgendes in settings.py ein.

settings.py


TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')], #Hier beheben
        'APP_DIRS': True,

Ändern Sie als Nächstes views.py. Rufen Sie index.html auf, die Vorlage, die Sie zuvor erstellt haben.

blog/views.py


from django.views.generic import TemplateView

class IndexView(TemplateView):
    template_name = 'blog/index.html'

URL-Design

Erstellen Sie als Nächstes eine Routing-Einstellung speziell für die Blog-App. Die Routing-Einstellungen werden in einer Datei namens "urls.py" festgelegt.

Legen Sie zunächst das Routing in urls.py fest, das das Routing des gesamten Projekts steuert, und urls.py in der App.

Bearbeiten Sie zunächst von urls.py direkt unter mysite.

mysite/urls.py


from django.contrib import admin
from django.urls import include, path

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

Sie laden die URLs für die Blog-App, die Sie später in den URL-Mustern erstellen.

In wird urls.py nur direkt unter mysite erstellt, aber Sie können "urls.py" auch direkt unter blog erstellen. Sie können einen Editor verwenden oder den folgenden Befehl im Blog-Verzeichnis Ihrer App ausführen.

/blog


touch urls.py

Die Dateistruktur unter Blog ist wie folgt.

.
├── __init__.py
├── admin.py
├── apps.py
├── migrations
│   └── __init__.py
├── models.py
├── tests.py
├── urls.py
└── views.py

Indem Sie den Inhalt der erstellten urls.py auf diese Weise ändern, können Sie das Routing der in views.py erstellten Funktion festlegen (= den Prozess des Aufrufs von index.html).

blog/urls.py


from django.urls import path
from . import views

app_name = 'blog'

urlpatterns = [
    path('', views.IndexView.as_view(), name='index'),
]

Übrigens, indem Sie name = 'index' setzen, können Sie diese URL durch umgekehrte Suche unter dem Namen "blog: index" aufrufen.

Überprüfen Sie zu diesem Zeitpunkt, ob index.html aufgerufen werden kann.

Führen Sie runserver in dem Verzeichnis aus, in dem sich manage.py befindet.

python3 manage.py runserver

Wenn Sie erfolgreich bestanden haben, greifen Sie mit Ihrem Browser auf ** 127.0.0.1:8000/blog ** zu. Dies liegt daran, dass der in der Blog-App beschriebene Inhalt funktioniert, wenn zuvor mit der Adresse mit dem Blog in mysite / urls.py darauf zugegriffen wird.

Wenn Sie darauf zugreifen und der Inhalt von index.html angezeigt wird, ist dies erfolgreich.

image.png

Nächstes Mal werden wir Modelle erstellen und uns darauf vorbereiten, den Artikel tatsächlich zu registrieren.

→ Fortsetzung: Django-Tutorial (Erstellung von Blog-Anwendungen) ② - Erstellung von Modellen, Vorbereitung von Verwaltungsseiten

Recommended Posts

Django Tutorial (Blog App erstellen) ① - Vorbereitung, Erstellung der obersten Seite
Django Tutorial (Blog-App erstellen) ⑤ - Artikelerstellungsfunktion
Django Tutorial (Blog App erstellen) ④ --Einheitentest
Django Tutorial (Blog App erstellen) ③ - Artikellistenanzeige
Django Tutorial (Blog App erstellen) ⑦ --Front End Complete
Django-Tutorial (Erstellung von Blog-Apps) ② - Modellerstellung, Vorbereitung der Verwaltungssite
Django-Tutorial (Blog-App erstellen) Ar - Artikeldetails / Funktionen bearbeiten / löschen
Entwicklungspraxis für Webanwendungen: Erstellen Sie mit Django eine Seite zum Erstellen von Schichten! (Schichterstellungsseite)
Entwicklungspraxis für Webanwendungen: Erstellen Sie mit Django eine Seite zum Erstellen von Schichten! (Einführung)
Django Tutorial Zusammenfassung für Anfänger von Anfängern ① (Projekterstellung ~)
Entwicklungspraxis für Webanwendungen: Erstellen Sie mit Django eine Seite zum Erstellen von Schichten! (Schreiben Sie eine Basisvorlage)
Entwicklungspraxis für Webanwendungen: Erstellen Sie mit Django eine Seite zum Erstellen von Schichten! (Authentifizierungsverarbeitung)
Python Django Tutorial (5)
Python Django Tutorial (2)
Django-Tabellenerstellung
Django Tutorial Memo
Python Django Tutorial (8)
Python Django Tutorial (6)
Starten Sie das Django Tutorial 1
Entwicklungspraxis für Webanwendungen: Erstellen Sie mit Django eine Seite zum Erstellen von Schichten! (Experiment auf der Admin-Seite)
Python Django Tutorial (7)
Python Django Tutorial (1)
Python Django Tutorial Tutorial
Python Django Tutorial (3)
Python Django Tutorial (4)
Was ist ein Hund? Startvolumen der Django-App erstellen --startapp
Todo-App mit Django erstellen ③ Aufgabenlistenseite erstellen
Was ist ein Hund? Django App Creation Start Volume - Startprojekt
DJango-Seite auf Heroku veröffentlicht: Vorbereitung mein Suchtpunkt
[Django] Neue Funktion zum Erstellen von Fragen zur Umfrage-App hinzugefügt
Entwicklungspraxis für Webanwendungen: Erstellen Sie mit Django eine Seite zum Erstellen von Schichten! (Entwurf des Datenbankmodells)