Ich habe zum ersten Mal versucht, Django, das beliebte Python-Framework, zu verwenden. Dieses Mal habe ich mich auf das offizielle Tutorial bezogen.
Referenz: Django-Dokumentation
Dieses Mal werden wir virtualenv verwenden, um eine virtuelle Umgebung für Django zu erstellen (Python-Version ist 3.5.1).
$ pyenv virtualenv 3.5.1 django
Wechseln Sie in das Verzeichnis, das während der Entwicklung verwendet wurde, und legen Sie die gerade erstellte virtuelle Umgebung fest.
$ mkdir django
$ cd django
$ pyenv local django
Dann installiere Django mit pip
.
$ pip install django
Überprüfen Sie, ob es richtig installiert wurde.
$ python -c "import django; print(django.get_version())"
1.9.4
Ich glaube, ich habe es geschafft.
Siehe Schreiben Ihrer ersten Django-App, Teil 1.
Erstellen Sie zunächst ein Django-Projekt mit dem Namen "mysite".
$ django-admin startproject mysite
Wenn Sie den Pfad nach dem Projektnamen angeben, Sie können ihn anscheinend am angegebenen Speicherort erstellen (Ich habe es nicht versucht) ).
Durch Ausführen dieses Befehls wurde ein Verzeichnis mit dem Namen "mysite" erstellt.
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
Gehen Sie zum Verzeichnis "mysite" und versuchen Sie, den Server zu starten.
$ python manage.py runserver
Greifen Sie nach Ausführung des Befehls mit einem Browser auf http: //127.0.0.1: 8000 /
zu.
Die Seite "Willkommen in Django" wurde ordnungsgemäß angezeigt (ich habe vergessen, einen Screenshot zu machen).
Sie können die IP-Adresse oder Portnummer auch ändern, indem Sie im obigen Befehl nach "runserver" "Portnummer" oder "IP-Adresse: Portnummer" nach "runserver" angeben.
Fahren Sie den Server vorerst mit Strg-C herunter.
Als nächstes werden wir eine App machen. Erstellen Sie zunächst die Quelle für die Erstellung der App. Führen Sie den folgenden Befehl im Verzeichnis "mysite" aus.
$ python manage.py startapp polls
Sie haben jetzt ein Verzeichnis mit dem Namen polls.
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
Ich werde den Code von nun an tatsächlich schreiben.
Ändern Sie views.py
in dem soeben erstellten Verzeichnis polls
wie folgt.
polls/views.py
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
Erstellen Sie eine Ansicht (Look), wenn Sie mit dieser Datei auf localhost: 8080 / polls
zugreifen (Sie können sie nicht sehen, auch wenn Sie noch darauf zugreifen).
Es scheint, dass Sie etwas namens URLconf benötigen, um dies zu sehen. Als nächstes werden wir dies erstellen.
Erstellen Sie eine neue Datei mit dem Namen "urls.py" im Verzeichnis "polls". Schreiben Sie den folgenden Code.
$ vim polls/urls.py
polls/urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
]
Als nächstes bearbeiten Sie "urls.py" in "mysite", eine Ebene über "polls".
mysite/urls.py
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^polls/', include('polls.urls')),
url(r'^admin/', admin.site.urls),
]
Das "include ()" in der 5. Zeile scheint verwendet zu werden, um auf andere URLconf-Dateien zu verweisen.
Wenn Sie dies tun können, starten Sie den Server erneut und überprüfen Sie.
$ python manage.py runserver
Greifen Sie mit Ihrem Browser auf "http: //127.0.0.1: 8080 / polls" oder "http: // localhost: 8080 / polls" zu. Wenn "Hallo Welt. Sie befinden sich am Umfrageindex" angezeigt wird, ist dies in "polls / views.py" beschrieben und erfolgreich. Wenn Sie hier auf "http: // localhost: 8080 / admin" zugreifen, wird der Administrator-Anmeldebildschirm angezeigt, obwohl dies nicht im Lernprogramm beschrieben ist. Dieser Bereich wird in der Regex von "About url ()" unten angesprochen.
Dies ist vorerst das Ende von Tutorial 1. Danke für deine harte Arbeit.
Da es eine Beschreibung über "url ()" gab, die in "urls.py" verwendet wurde, werde ich sie schreiben, soweit ich verstehen kann.
url ()
hat vier Argumente.
url(regex, view [,kwargs, name])
Die letzten beiden (kwargs, name) sind optional.
regex
Wie der Name schon sagt, handelt es sich um einen regulären Ausdruck. Geben Sie hier das URL-Muster an.
Für mysite / urls.py
,
Wenn es mit r '^ polls /'
übereinstimmt → Siehe URLconf von polls
Wenn es mit r '^ admin /'
übereinstimmt → Siehe admin.site.urls
Und so weiter.
Ändern Sie als Test "url ()" von "polls / urls.py" wie folgt.
polls/urls.py
:
url(r'^test', views.index, name='index'),
:
Wenn ich jetzt den Server speichere und erneut starte und auf "http: // localhost: 8080 / polls" zugreife, wird ein 404-Fehler angezeigt. Fügen Sie als Nächstes nach der vorherigen Adresse eine Zeichenfolge hinzu, die mit "r" ^ test "(z. B. test01) übereinstimmt, um darauf zuzugreifen (Beispiel: http: // localhost: 8080 / polls). Dann wurde, wie im Tutorial, die Zeichenkette richtig angezeigt.
Kurz gesagt, die Adresse wird durch das Regex-Muster bestimmt.
view
Wenn der reguläre Ausdruck des ersten Arguments übereinstimmt, wird die Funktion dieses zweiten Arguments aufgerufen. Das HttpRequest-Objekt wird dieser Funktion als erstes Argument zugewiesen, und alle von Regex erhaltenen Werte werden nach dem zweiten Argument angegeben.
Ich verstehe, dass das HttpRequest-Objekt übergeben wird, bin mir aber über das zweite und die nachfolgenden Argumente nicht sicher. Werden die von GET usw. übergebenen Parameter einbezogen? Ich hoffe, ich kann es verstehen, wenn ich mit dem Tutorial fortfahre.
Recommended Posts