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.
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.
Erstellen Sie zunächst ein Arbeitsverzeichnis. Der Name hier kann alles sein, aber jetzt nennen wir es Blog.
mkdir blog
cd blog
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$
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
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
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
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.
Dies ist der Anfang von allem. Wenn Sie diesen Bildschirm sehen, ist der erste Schritt abgeschlossen! Herzliche Glückwünsche.
Ü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.)
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
]
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'
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.
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