Erstellen eines Django-Projektes

  • 30. Januar 2021

Ein Django-Projekt zu erstellen ist nicht schwer und schnell erledigt. Dennoch besteht die Installation aus mehreren Schritten. In diesem Blog-Post habe ich diese festgehalten. Auf diese Weise kann ich ein neues Projekt schnell aufsetzen und mit der Arbeit an der eigentlichen Idee beginnen.

Die beschriebene Vorgehensweise orientiert sich an der von Django empfohlenen Installation und kommt ohne Schnickschnack daher. Dieses Tutorial kannst du auch benutzen, um meinen anderen Posts zu folgen, dort starte ich immer mit einem voll funktionsfähigen Django-Projekt (mit Ausnahme von einigen Tutorials für Anfänger). Genug der Worte, lass uns loslegen.

Erstellen des Projektes

Als erstes Installieren wir die neuste stabile Version von Django in eine virtuelle Umgebung. Überlege dir dazu den Namen für dein neues Projekt. Am besten wählst du dafür einen kurzen Namen, der beschreibt, was das Projekt tut. In diesem Fall nennen wir das Projekt django_start.

Öffne jetzt die Kommandozeile und lege für dieses Tutorial in deinem Dokumente-Ordner ein Verzeichnis namens django_start an. Tippe Folgendes:

# Linux & Windows
mkdir ~/Dokumente/django_start
# Mac
mkdir ~/Documents/django_start

Und wechsle in das neue Verzeichnis:

# Linux & Windows
cd ~/Dokumente/django_start/
# Mac
cd ~/Documents/django_start/

Es ist gängige Praxis, die Installationen für jedes Python-Projekt in einer eigenen virtuellen Umgebung auszuführen. Damit befinden sich alle Abhängigkeiten eines Projektes isoliert in einer separaten Arbeitsumgebung, ohne sich gegenseitig zu stören. Ich benutze dafür venv, dem ab Python 3.6 integrierten Werkzeug zur Arbeit mit virtuellen Umgebungen. Für ältere Versionen von Python empfehle ich virtualenv, den Vorgänger von venv. Es gibt durchaus noch andere Tools, wie z.B. pyenv (das oft empfohlen wird) aber auch hier gilt für mich: Komplexität reduzieren und mit dem Arbeiten, das zuverlässig funktioniert (pyenv hat das z.B. für mich nicht getan). Natürlich bist du frei, das Tool zu wählen, das dir am besten liegt. In diesem Tutorial benutze ich venv.

Erstelle zuerst das Verzeichnis für die virtuelle Umgebung und nenne es env (oder ein anderer Name der dir besser liegt):

# Mac & Linux
python3 -m venv env
# Windows Powershell
python -m venv env

Aktiviere die virtuelle Umgebung:

# Mac & Linux
source env/bin/activate
# Windows Powershell
# Das Ausführen von Scrips muss erlaubt sein
# Siehe auch: https://www.windowspro.de/script/ausfuehrungsrichtlinien-executionpolicy-fuer-powershell-scripts-ueber-gpo-setzen
env/Scripts/activate

Dein Kommandozeilen-Prompt sollte jetzt ein (env) als ersten Eintrag anzeigen. Damit wird dir signalisiert, dass die virtuelle Umgebung aktiv ist und du mit der Instanz von Python in deiner virtuellen Umgebung arbeitest und nicht mit der Hauptinstanz von Python. Das Ganze sollte ungefähr so aussehen (wichtig ist die Anzeige (env) ganz am Anfang der Zeile):

Mac und Linux:

(env) didier@computer ~/Dokumente/django_crud_app $

Windows:

(env) PS C:\Users\Didier\Dokumente\django_crud_app>

Du bist nun bereit, Django zu installieren. Tippe dazu folgenden Befehl:

pip install django

Damit wird die aktuellste Version von Django in deine virtuelle Umgebung namens env installiert (z.B. 3.1.4). Zur Installation einer spezifischen Version tippe z.B. pip install django==2.2.17 z.B. für ein Projekt mit Django 2.2. Sobald die Installation erfolgreich durchgelaufen ist, erstellen wir unser neues Django-Projekt, welches wir ganz einfach django_start nennen:

django-admin startproject django_start

Deine Ordnerstruktur sollte so aussehen:

└── env
│   └── (...)
├── django_start
│   ├── manage.py
│   └── django_start
│       ├── asgi.py
│       ├── __init__.py
│       ├── settings.py
│       ├── urls.py
│       └── wsgi.py

Damit ist der Schritt Installation erfolgreich abgeschlossen. Bevor wir mit der Arbeit an unserem neuen Projekt beginnen, überprüfe die Installation und starte das neue Projekt. Wechsle dazu in den Ordner django_start:

cd django_start

In diesem Ordner befindet sich die Datei manage.py ein Kommandozeilen-Hilfsmodul für die Arbeit mit Django. Mit dieser Datei können wir den Django-Entwicklungsserver starten, Datenbanken migrieren, etc. Starte nun das neue Django-Projekt. Tippe dazu:

python manage.py runserver

Die Ausgabe in der Kommandozeile sollte ungefähr so aussehen:

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

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.
December 20, 2020 - 16:11:21
Django version 3.1.4, using settings 'django_start.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Du erhältst eine Meldung, dass noch offene Migrationen vorhanden sind. Beende zuerst den laufenden Vorgang mit CONTROL-C und lasse dir die Ordnerstruktur anzeigen:

ls

Die Ordnerstruktur sieht jetzt wie folgt aus:

db.sqlite3  django_start  manage.py

Django hat für uns automatisch eine SQLite Datenbank erstellt mit dem Namen db.sqlite3. Für produktionsreife Projekte würde ich empfehlen, PostgreSQL einzusetzen, für die schnelle Entwicklung eines Prototyps reicht SQLite jedoch meistens aus. Wir werden die oben angezeigten Migrationen jetzt anwenden. Tippe dazu Folgendes:

python manage.py migrate

Du solltest diese Ausgabe sehen:

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying auth.0012_alter_user_first_name_max_length... OK
  Applying sessions.0001_initial... OK

Damit haben wir für die oben anzeigten Django-Standard-Apps eine Datenbanktabelle erstellt. Starte nochmals den Django-Entwicklungsserver:

python manage.py runserver

Die Ausgabe ist diesmal kürzer:

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
June 07, 2020 - 15:53:48
Django version 3.0.7, using settings 'django_start.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Rufe jetzt mit einem Internet-Browser die Adresse http://127.0.0.1:8000/ auf. Dich sollte nun die Django-Rakete begrüssen, wie unten im Bild:

Voilà, das Django-Projekt ist jetzt erstellt und du kannst mit der Entwicklung deiner neuen App beginnen. Viel Erfolg!

Das könnte dich auch interessieren

Python auf Windows, Mac und Linux installieren

  • 23. Januar 2022

Python ist die Programmiersprache, in der das Web-Framework Django geschrieben ist und damit die Grundlage für jedes Django-Projekt. Die Installation von Python sollte eine einfache Sache sein. Und im Prinzip ist es das auch. Dennoch gibt es einige Steine, über die man bei der Installation stolpern kann. So ist es mir in der Vergangenheit jedenfalls ein paar Mal ergangen. In diesem Tutorial habe ich die Schritte zusammengetragen, mit denen ich auf allen drei grossen OS-Plattformen, Windows, Mac und Linux, immer wieder erfolgreich war.