[PYTHON] Erste Schritte mit Django 2

Versuchen Sie, "Hello World" im Web anzuzeigen

Erstellen Sie eine Webanwendung namens Hello World App und zeigen Sie "Hello World" an.

Grundeinstellung

Wechseln Sie zunächst in ein beliebiges Verzeichnis, erstellen Sie ein Verzeichnis mit dem Namen helloworld (alles ist in Ordnung) und wechseln Sie in dieses Verzeichnis. Rufen Sie dann die virtuelle Umgebung auf und führen Sie den folgenden Befehl aus, um ein neues Django-Projekt zu erstellen.

$ django-admin startproject helloworld_project .
# django-admin.py:Skript zum Erstellen der Verzeichnisse und Dateien, die für ein neues Projekt benötigt werden
# helloworld_progect:Alles ist in Ordnung, da es sich um einen Projektnamen handelt

Das Verzeichnis helloworld_project wird erstellt. Die folgenden Dateien befinden sich im Verzeichnis.

├── helloworld
    ├── manage.py          #Ein Befehlszeilenprogramm zum Ausführen verschiedener Vorgänge für Django-Projekte.
    ├── helloworld_project
        ├── __init__.py    #Eine leere Datei, um Python mitzuteilen, dass dieses Verzeichnis ein Python-Paket ist
        ├── asgi.py        #Einstiegspunkt für den ASGI-kompatiblen Webserver, der das Projekt bereitstellt
        ├── settings.py    #Steuern Sie die Projekteinstellungen
        ├── urls.py        #urlresolver(Mechanismus zum Finden der Ansicht, die der in der Anforderung empfangenen URL entspricht)Enthält eine Liste der in verwendeten Muster.
        └── wsgi.py        #wsgi:Eine Definition einer gemeinsamen Schnittstelle, die einen Server und eine Webanwendung verbindet

App erstellen

Hinzufügen und Erstellen einer App (Funktion) zu einem neuen Projekt namens helloworld_project. Wenn Sie das Wort App hören, denken Sie eher an LINE, Twitter oder Instagram, aber in Django bezieht sich App auf eine Funktion. Viele Funktionen arbeiten zusammen, um LINE zu erstellen. Ein Django-Projekt enthält eine oder mehrere Apps und arbeitet zusammen, um Dienste bereitzustellen. Zum Beispiel auf einer E-Commerce-Site --Benutzerauthentifizierung --Zahlung --Warenpräsentation

Neue App

Wenn der Server ausgeführt wird, stoppen Sie ihn zunächst mit Strg + c. Führen Sie den folgenden Befehl aus, um eine App mit dem Namen "pages" zu erstellen.

$ python manage.py startapp pages

Dadurch wird das Verzeichnis / helloworld / pages erstellt.

├── pages
    ├── __init__.py      
    ├── admin.py        #Konfigurationsdatei in admin
    ├── apps.py         #Einstellungsdatei der App selbst genannt Seiten
    ├── migrations      #model.Speichern Sie den Änderungsverlauf der Py-Datei, der Datenbank und der Modelle.Verzeichnis zum Speichern von Dateien, um py synchron zu halten
    │   └── __init__.py
    ├── models.py       #Modelldatei der App. Eine Datei, die ein Datenbankmodell definiert.
    ├── tests.py        #App-Testdatei
    └── views.py        #Datei der App anzeigen. Eine Datei, die Anforderungen und Antworten auf Apps verarbeitet.

Ich habe in Djangos Projekt (Hallo Welt) eine App namens Seiten erstellt, aber Django weiß immer noch nicht, ob Seiten Apps sind oder was. Ich muss Django anweisen, eine App namens Pages zu verwenden. Wenn Sie helloworld_project / settings.py öffnen, finden Sie die folgenden Teile.

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

Dies sind die standardmäßig vorhandenen Django-Apps. Sie können Ihrem Django-Projekt nur Ihre eigene App hinzufügen, indem Sie hier Seiten hinzufügen. Fügen Sie die folgende Zeile hinzu.

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'pages.apps.PagesConfig', # new
]

Sie sollten immer Ihre eigene App unten hinzufügen. Dies liegt daran, dass Django die Einstellung von INSTALLED_APPS von oben nach unten ausführt. Sie müssen zuerst die Admin-App laden, dann auth, dann .... Der Grund ist, dass die meisten selbst erstellten Apps von Funktionen wie admi abhängen.

Ansicht bearbeiten

Fügen Sie als Nächstes den Code hinzu, um die Zeichenfolge in views.py anzuzeigen.

pages/views.py


from django.shortcuts import render
from django.http import HttpResponse

def homePageView(request):
    return HttpResponse('Hello, World!')
    #Wenn eine Funktion namens homePgeView eine Anforderung empfängt, ruft sie eine Funktion namens HttpResponse auf und gibt den erhaltenen Wert zurück.
    #Diesmal'Hello, World!'Es wird eine Antwort zurückgegeben, die die Zeichenfolge anzeigt.

Zunächst fordert eine Ansicht Informationen wie Daten von einem Modell (model.py) an. Das Modell übergibt dann die angeforderten Daten an die Ansicht an die Vorlage. Mit anderen Worten, die Ansicht (view.py) ist eine Python-Funktion, die eine Anforderung empfängt und eine Antwort zurückgibt.

** Beachten Sie, dass die Ansicht (view.py) grundsätzlich ein HttpResponse-Objekt zurückgeben muss. (Es gibt Ausnahmen) **

Django verwendet Anforderungs- und Antwortobjekte, um den Verarbeitungsstatus im gesamten System zu übergeben. Nach Erhalt einer Anforderung für eine Seite erstellt Django ein HttpRequest-Objekt. Dieses Objekt enthält die Anforderungsmetadaten. Django lädt dann die entsprechende Ansicht und übergibt HttpRequest als erstes Argument der Ansichtsfunktion. Jede Ansicht muss ein HttpResponse-Objekt zurückgeben. https://djangoproject.jp/doc/ja/1.0/ref/request-response.html

URL-Einstellungen

Als nächstes folgt die URL-Einstellung. Von nun an berühren Sie zwei (①, ②) urls.py-Dateien. Lassen Sie uns also unser Bestes geben, während wir uns der Unterschiede bewusst sind.

① Erstellen Sie eine Datei mit dem Namen pages / urls.py. (** Achten Sie auf das aktuelle Verzeichnis. Im Seitenverzeichnis. **) Bitte fügen Sie den folgenden Code hinzu.

pages/urls.py


from django.urls import path
from .views import homePageView

urlpatterns = [
    path('', homePageView, name='home')
]
#Django ist der Domainname der URL(http://127.0.0.1:8000/Teil von)Wird ignoriert, daher ist dieses URL-Muster eine leere Zeichenfolge('')Streichhölzer

Der obige Code bedeutet, dass Sie beim Zugriff auf die Adresse 127.0.0.1:8000 (die Adresse der ersten Seite) die Ansichtsfunktion homePageView aufrufen sollten. name = 'home' ist der Name der URL, mit der die Ansicht identifiziert wird. Sie haben in Zukunft die Möglichkeit, den Namen dieser URL zu verwenden. Wenn Sie ihr also einen eindeutigen Namen geben, der leicht zu merken ist, werden Sie nicht verwirrt sein.

② Standardmäßig sollte eine Datei mit dem Namen helloworld_progect / urls.py erstellt werden. Fügen Sie hier den folgenden Code hinzu.

helloworld_project/urls.py


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

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('pages.urls')), #new
]
#Ähnlich wie bei ① ist das URL-Muster eine leere Zeichenfolge('')Geben Sie in http an://127.0.0.1:8000/Die Eingangsseite ist nur die Adresse der Domain.

Importieren Sie die Include-Funktion, um pages.urls zu importieren. In path (), das 'admin /' angibt, wird der Verwaltungsbildschirm (admin.site.urls) zurückgegeben (im Browser angezeigt), wenn die URL "admin /" lautet. Der Verwaltungsbildschirm ist eine Seite, auf der Sie die App mit einem Browser bedienen können. Django leitet Anfragen, die auf die Einstiegsseite gelangen, an pages.urls weiter. Mit anderen Worten, wenn auf die Eingangsseite zugegriffen wird, wird die homePageView-Funktion von pages.urls automatisch ausgeführt.

Hallo Welt fertig

Jetzt können Sie Hello, World! Auf Ihrer Website anzeigen. Sie müssen lediglich den Server starten.

$ python manage.py runserver
Screen Shot 2020-03-26 at 10.45.38.png

Nächstes Mal werde ich mehr über die Pages App tun.

Referenzmaterial

Django for Beginners 3.0

Recommended Posts

Erste Schritte mit Django 2
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 Django mit PyCharm
Erste Schritte mit Python Django (5)
Django 1.11 wurde mit Python3.6 gestartet
Erste Schritte mit Android!
1.1 Erste Schritte mit Python
Erste Schritte mit apache2
Erste Schritte mit Python
Erste Schritte mit Numpy
Erste Schritte mit Spark
Erste Schritte mit Python
Erste Schritte mit Pydantic
Übersetzen Erste Schritte mit TensorFlow
Einführung in Python-Funktionen
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
Erste Schritte mit Django: 4_MySQL-Integration
Erste Schritte mit Django: 3_Apache-Integration
Fangen Sie mit Django an! ~ Tutorial ④ ~
Django Erste Schritte Teil 2 mit dem Eclipse Plugin (PyDev)
Erste Schritte mit Python Responder v2
Einführung in Git (1) History-Speicher
Erste Schritte mit Python-Webanwendungen
Erste Schritte mit Python für PHPer-Klassen
Erste Schritte mit Sparse Matrix mit scipy.sparse
Erste Schritte mit Julia für Pythonista
Erste Schritte mit Python Grundlagen von Python
Erste Schritte mit der Cisco Spark REST-API
Beginnend mit USD unter Windows
Erste Schritte mit genetischen Python-Algorithmen
Erste Schritte mit Python für PHPer-Funktionen
Erste Schritte mit der CPU-Diebstahlzeit
Internationalisierung mit Django
Grale fangen an
Schritt Notizen, um mit Django zu beginnen
Erste Schritte mit Python3 # 1 Grundkenntnisse erlernen
Erste Schritte mit Python Web Scraping Practice
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 Lisp für Pythonista: Ergänzung
Erste Schritte mit Heroku, Bereitstellen der Flaschen-App
Erste Schritte mit TDD mit Cyber-dojo bei MobPro
Erste Schritte mit Heroku-Viewing Hello World in Python Django mit Raspberry PI 3
Authentifizieren Sie Google mit Django
Erste Schritte mit Python mit 100 Klopfen bei der Sprachverarbeitung
Laden Sie Dateien mit Django hoch
Entwicklungsverdauung mit Django