COOKBOOK 1: Erstellen eines neuen Projekts
Hier sind nochmal alle Schritte beschrieben, die wir zum Erstellen eines Projekts und zum Anlegen einer ersten App benötigen. Dieses Cookbook dient als Hilfe für alle eure zukünftigen Projekte.
0. Projektverzeichnis für alle Django-Projekte anlegen
Es gilt als gute Practice, alle lokalen Django-Projekte in einem Verzeichnis
zu verwalten. Deshalb legen wir zuerst einmal ein Projekte-Verzeichnis
an.
mkdir django_projects
cd django_projects
1. Verzeichnis für alle virtuellen Environments anlegen
Jedes Django-Projekt erhält sein eigenes virtuelles Environment. Diese werden unter
django_projects/.envs
angelegt:
mkdir .envs
So sieht unser Verzeichnis jetzt aus
├── django_projects
└── .envs
└──eventenv
falls ein anderes, virtuelles Environment aktiv sein sollte, dieses jetzt deaktivieren
(petenv) deactivate
und das Environment aktivieren:
source .envs/eventenv/bin/activate
#der Windows
.envs\eventenv\Scripts\activate
2. Projektverzeichnis erstellen
Wir erstellen nun für unser neues Projekt ein Projektverzeichnis
und wechseln auch gleich hinein.
Unser Django-Projekt heisst event_project
:
(eventenv) mkdir event_project
(eventenv) cd event_project
2. requirements-Dateien anlegen
Wir legen in diesem Verzeichnis mit unserem Editor die requirements.in
und die requirements-dev.in
an.
Optional können wir dort gleich eine README.md
und .gitignore
- Datei anlegen:
├── django_projects
└── event_project
├── README.md
├── .gitignore
├── .requirements.in
├── .requirements-dev.in
└── .envs
└──eventenv
3. Django installieren
in die requirements.in
schreiben wir die nötigen Pakete:
Django==4.1.3
in die requirements-dev.in
schreiben wir d nötigen Pakete:
Django==4.1.3
und installieren diese auf der Shell:
(eventenv) pip install pip-tools
(eventenv) pip-compile requirements.in
(eventenv) pip-compile requirements-dev.in
4. ein Django-Projekt erstellen
Nach der Installation steht uns der django-admin zur Verfügung. Mit diesem erstellen wir ein neues Django-Projekt:
(eventenv) pwd
django_projects/event_project
(eventenv) django-admin startproject event_manager
Es wird die Dateistruktur angelegt. Nun gibt es ein äußeres und ein inneres event_manager
-Verzeichnis.
event_project
└── event_manager
├── manage.py
└── event_manager
├── __init__.py
├── asgi.py
├── settings.py
├── urls.py
└── wsgi.py
Hinweis: alle zukünftigen Pfadangaben gehen ab jetzt von event_project
aus. Die settings.py
liegt also unter event_manager/event_manager/settings.py
.
5. Settings anpassen
Wir wollen gleich die settings.py
anpassen und nehmen dort die folgenden, wichtigsten Änderungen vor:
ALLOWED_HOSTS = ["127.0.0.1"]
LANGUAGE_CODE = 'de-DE'
TIME_ZONE = "Europe/Berlin"
USE_I18N = True
USE_L10N = True
USE_TZ = True
6. Runserver auf der Shell starten
Um den Testserver zu starten, benötigen wir folgendes Kommando:
(eventenv) python manage.py runserver
Die Website im Browser aufrufen, die Rakete muss fliegen: http://127.0.0.1:8000
7. App erstellen
Um eine erste App anzulegen, nutzen wir das Subkommando startapp
.
(eventenv) python manage.py startapp events
Es wurden ein paar Dateien in einem App-Verzeichnis erstellt. So sieht unser Verzeichnis aktuell aus:
event_manager
├── manage.py
├── db.sqlite3
├── events
├── migrations/
├── __init__.py
├── admin.py
├── apps.py
├── models.py
├── tests.py
├── views.py
└── event_manager
├── __init__.py
├── asgi.py
├── settings.py
├── urls.py
└── wsgi.py
Nun registrieren wir die neu erstellte App events``auch gleich in den ``event_manager/event_manager/settings.py
.
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"whitenoise.runserver_nostatic",
"events",
]
1. URLs anlegen
Wir wollen jetzt eine TestView schreiben und die nötigen URLs dafür anlegen.
Dies geschieht in der urls.py
des Projekts und in der urls.py
der App.
a) Pfad zur App registrieren
Unter event_manager/event_manager/urls.py
legen wir den folgenden Code an und verweisen auf die
Urls der App events
, die es aktuell allerdings noch gar nicht gibt:
from django.urls import path, include
urlpatterns = [
path("admin/", include("admin.urls"))
path("events/", include("events.urls")), # <= HIER eintragen!
]
b) Die Pfade der App anlegen
Wir erstellen die Datei event_manager/events/urls.py
und fügen folgenden Code ein:
from django.urls import path
from . import views
urlpatterns = [
path('hello/', views.hello, name='hello'),
]
Der Pfad verweist auf eine nicht existente Funktion hello
.
Diese müssen wir noch anlegen.
9. VIEWS anlegen
Unter event_manager/events/views.py
legen wir jetzt die erste View an:
from django.http import HttpResponse
def hello(request):
return HttpResponse('hello!')
10. RUNSERVER starten und View testen
(eventenv) python manage.py runserver
Und View aufrufen: http://127.0.0.1:8000/events/hello
Im Browser sollte nun klein das Wort hello!
stehen.