Wie man Django auf einem Hosting-Server installiert: Eine vollständige Schritt-für-Schritt-Anleitung
Django ist ein High-Level-Python-Web-Framework, das schnelle Entwicklung und sauberes, pragmatisches Design fördert. Es bleibt eine der beliebtesten Optionen für die Erstellung skalierbarer, sicherer und wartbarer Webanwendungen – von einfachen Blogs bis zu komplexen Enterprise-Plattformen. In diesem umfassenden Leitfaden führen wir Sie durch jeden Schritt, der erforderlich ist, um Django auf einem Hosting-Server zu installieren, von der Vorbereitung Ihrer Linux-Umgebung bis zum Ausführen Ihres ersten Projekts und seiner Vorbereitung für die Produktion.
Warum Django für Ihre Webanwendung wählen?
Bevor wir in den Installationsprozess eintauchen, lohnt es sich zu verstehen, warum Django weiterhin die Python-Web-Entwicklungslandschaft dominiert:
- Batteries included: Django wird mit integrierter Authentifizierung, einem Admin-Panel, ORM, Formularverarbeitung und Sicherheitsfunktionen ab Werk ausgeliefert.
- Skalierbarkeit: Django betreibt hochfrequente Plattformen wie Instagram und Pinterest.
- Sicherheit im Fokus: Django schützt standardmäßig vor häufigen Sicherheitslücken wie SQL-Injection, XSS, CSRF und Clickjacking.
- Schnelle Entwicklung: Seine Convention-over-Configuration-Philosophie ermöglicht es Entwicklern, Funktionen schneller bereitzustellen.
- Riesiges Ökosystem: Tausende wiederverwendbarer Pakete und eine große Community bedeuten, dass Lösungen für fast jedes Problem bereits existieren.
Um das Beste aus Django herauszuholen, benötigen Sie eine zuverlässige Server-Umgebung. Ein VPS Hosting-Plan bietet Ihnen den Root-Zugriff, dedizierte Ressourcen und die Flexibilität, die Django-Anwendungen erfordern.
Voraussetzungen
Bevor Sie mit dem Installationsprozess beginnen, stellen Sie sicher, dass Sie Folgendes haben:
- Ein Hosting-Server mit einer Linux-Distribution (Ubuntu 20.04/22.04 oder Debian werden empfohlen)
- SSH-Zugriff auf den Server mit sudo-Berechtigungen
- Python 3.8 oder höher (Python 3.10+ empfohlen)
pip(Pythons Paketmanager) installiert- Grundlegende Vertrautheit mit der Linux-Befehlszeile
> Pro-Tipp: Wenn Sie eine produktive Django-Anwendung ausführen, vermeiden Sie Shared-Hosting-Umgebungen. Ein VPS Hosting-Plan oder ein Dedicated Server geben Ihnen die Kontrolle und Leistung, die Ihre Anwendung benötigt.
Schritt 1: Verbindung zu Ihrem Server über SSH
Öffnen Sie Ihr Terminal und stellen Sie eine SSH-Verbindung zu Ihrem Hosting-Server her:
ssh username@server_ipErsetzen Sie username durch Ihren tatsächlichen Systembenutzernamen und server_ip durch die öffentliche IP-Adresse Ihres Servers. Wenn Sie einen benutzerdefinierten SSH-Port oder eine schlüsselbasierte Authentifizierungsdatei verwenden, passen Sie den Befehl entsprechend an:
ssh -i /path/to/your/key.pem username@server_ipNach der Verbindung haben Sie eine Befehlszeilenschnittstelle zu Ihrem Server, wo Sie mit dem Setup-Prozess beginnen können.
Schritt 2: Aktualisieren Sie Ihr System und installieren Sie Python & pip
Die Aktualisierung Ihrer System-Pakete ist ein kritischer erster Schritt für Sicherheit und Kompatibilität.
Aktualisieren Sie den Paketindex
sudo apt update && sudo apt upgrade -yInstallieren Sie Python 3 und pip
Die meisten modernen Ubuntu- und Debian-Distributionen werden mit Python 3 vorinstalliert ausgeliefert. Überprüfen Sie zunächst Ihre Python-Version:
python3 --versionWenn Python 3 nicht installiert ist oder Sie pip benötigen, installieren Sie diese mit:
sudo apt install python3 python3-pip -yÜberprüfen Sie die Installationen:
python3 --version
pip3 --versionSie sollten Versionsnummern sehen, die bestätigen, dass beide Tools verfügbar sind.
Schritt 3: Richten Sie eine Python Virtual Environment ein
Die Verwendung einer virtuellen Umgebung ist nicht nur empfohlen – sie wird als Best Practice für jedes Python-Projekt angesehen. Virtuelle Umgebungen isolieren die Abhängigkeiten Ihres Projekts von der systemweiten Python-Installation und von anderen Projekten auf demselben Server, verhindern Versionskonflikte und halten Ihre Umgebung sauber.
Installieren Sie virtualenv
sudo pip3 install virtualenvAlternativ können Sie Pythons integriertes venv-Modul verwenden (verfügbar in Python 3.3+):
sudo apt install python3-venv -yErstellen Sie Ihr Projektverzeichnis und die Virtual Environment
Navigieren Sie zu dem Verzeichnis, in dem Sie Ihr Projekt hosten möchten, oder erstellen Sie ein neues:
mkdir myproject
cd myprojectErstellen Sie nun die virtuelle Umgebung in Ihrem Projektverzeichnis:
virtualenv venvOder mit dem integrierten venv-Modul:
python3 -m venv venvAktivieren Sie die Virtual Environment
source venv/bin/activateNach der Aktivierung ändert sich Ihr Eingabeprompt, um den Namen der virtuellen Umgebung anzuzeigen, zum Beispiel:
(venv) username@server:~/myproject$Alle pip install-Befehle, die ausgeführt werden, während die virtuelle Umgebung aktiv ist, installieren Pakete nur in dieser isolierten Umgebung. Um sie jederzeit zu deaktivieren, führen Sie einfach aus:
deactivateSchritt 4: Installieren Sie Django
Installieren Sie Django mit pip, während Ihre virtuelle Umgebung aktiv ist:
pip install djangoUm eine bestimmte Version von Django zu installieren (empfohlen für die Produktion, um Kompatibilität zu gewährleisten):
pip install django==4.2Überprüfen Sie die Installation:
django-admin --versionSie sollten die installierte Django-Versionsnummer im Terminal angezeigt sehen.
Schritt 5: Erstellen Sie ein neues Django-Projekt
Verwenden Sie Djangos integriertes django-admin-Befehlszeilentool, um ein neues Projekt zu erstellen:
django-admin startproject myproject .> Hinweis: Der nachfolgende Punkt (.) teilt Django mit, die Projektdateien im aktuellen Verzeichnis zu erstellen, anstatt ein verschachteltes Unterverzeichnis zu erstellen. Dies ist eine sauberere Struktur für die meisten Bereitstellungen.
Ihr Projektverzeichnis enthält nun die folgende Struktur:
myproject/
├── manage.py
└── myproject/
├── __init__.py
├── asgi.py
├── settings.py
├── urls.py
└── wsgi.pymanage.py— Ein Befehlszeilenprogramm für die Interaktion mit Ihrem Django-Projekt.settings.py— Die zentrale Konfigurationsdatei für Ihr Projekt.urls.py— Die URL-Routing-Konfiguration.wsgi.py/asgi.py— Einstiegspunkte für WSGI- und ASGI-kompatible Webserver.
Schritt 6: Konfigurieren Sie Datenbankeinstellungen
Öffnen Sie die settings.py-Datei, um Ihre Datenbankverbindung zu konfigurieren:
nano myproject/settings.pyStandard: SQLite (nur Entwicklung)
Standardmäßig ist Django für die Verwendung von SQLite konfiguriert, was für Entwicklung und Tests geeignet ist, aber nicht für die Produktion empfohlen wird:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}Produktionsoption: PostgreSQL
PostgreSQL ist die am meisten empfohlene Datenbank für Django in der Produktion. Installieren Sie zunächst die erforderlichen Pakete:
sudo apt install postgresql postgresql-contrib libpq-dev -y
pip install psycopg2-binaryAktualisieren Sie dann die DATABASES-Einstellung in settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydatabase',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '5432',
}
}Produktionsoption: MySQL / MariaDB
Wenn Sie MySQL oder MariaDB bevorzugen, installieren Sie den erforderlichen Adapter:
sudo apt install default-libmysqlclient-dev -y
pip install mysqlclientKonfigurieren Sie dann die DATABASES-Einstellung:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydatabase',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '3306',
}
}Konfigurieren Sie ALLOWED_HOSTS
Aktualisieren Sie auch in settings.py die ALLOWED_HOSTS-Einstellung, um die IP-Adresse oder den Domänennamen Ihres Servers einzuschließen. Dies ist erforderlich, damit Django Anfragen im Nicht-Debug-Modus verarbeitet:
ALLOWED_HOSTS = ['your_server_ip', 'yourdomain.com', 'www.yourdomain.com']Schritt 7: Wenden Sie Datenbankmigrationen an
Django verwendet ein Migrationssystem, um Datenbankschemaänderungen zu verwalten. Führen Sie die anfänglichen Migrationen aus, um alle erforderlichen Datenbanktabellen zu erstellen:
python manage.py migrateSie sehen eine Ausgabe, die jede angewendete Migration auflistet. Eine erfolgreiche Migration sieht wie folgt aus:
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
...Erstellen Sie einen Superuser (optional, aber empfohlen)
Erstellen Sie ein Admin-Konto, um auf Djangos integriertes Admin-Interface zuzugreifen:
python manage.py createsuperuserSie werden aufgefordert, einen Benutzernamen, eine E-Mail-Adresse und ein Passwort einzugeben.
Schritt 8: Führen Sie den Django-Entwicklungsserver aus
Sie können nun Djangos integriertem Entwicklungsserver starten, um Ihre Installation zu überprüfen:
python manage.py runserver 0.0.0.0:8000Dieser Befehl bindet den Entwicklungsserver an alle verfügbaren Netzwerkschnittstellen auf Port 8000. Öffnen Sie Ihren Webbrowser und navigieren Sie zu:
http://your_server_ip:8000Sie sollten die Django-Willkommensseite sehen – eine Rakete mit der Nachricht „Die Installation war erfolgreich! Glückwunsch!”
Um auf das Admin-Panel zuzugreifen, navigieren Sie zu:
http://your_server_ip:8000/admin> Wichtig: Djangos integrierter Entwicklungsserver ist nicht für die Produktion geeignet. Er ist Single-threaded, nicht für Leistung optimiert und verfügt nicht über Sicherheitshärtung. Verwenden Sie immer einen produktionsreifen Webserver für Live-Bereitstellungen.
Schritt 9: Bereiten Sie Django für die Produktion vor (empfohlen)
Für produktive Bereitstellungen müssen Sie einen ordnungsgemäßen Webserver-Stack konfigurieren. Das häufigste und empfohlene Setup ist Nginx + Gunicorn.
Installieren Sie Gunicorn
Mit Ihrer aktiven virtuellen Umgebung:
pip install gunicornTesten Sie, dass Gunicorn Ihre Anwendung bedienen kann:
gunicorn --bind 0.0.0.0:8000 myproject.wsgiInstallieren und konfigurieren Sie Nginx
sudo apt install nginx -yErstellen Sie eine Nginx-Serverblockkonfigurationsdatei:
sudo nano /etc/nginx/sites-available/myprojectFügen Sie die folgende Konfiguration hinzu:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/username/myproject;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
}Aktivieren Sie die Konfiguration und starten Sie Nginx neu:
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginxSammeln Sie statische Dateien
Aktualisieren Sie settings.py mit dem Verzeichnis für statische Dateien:
STATIC_ROOT = BASE_DIR / 'staticfiles'Sammeln Sie dann alle statischen Dateien:
python manage.py collectstaticSichern Sie Ihre Anwendung mit SSL
Für jede produktive Django-Anwendung ist HTTPS unverzichtbar. Ein SSL-Zertifikat verschlüsselt Daten während der Übertragung zwischen Ihrem Server und Ihren Benutzern, schützt sensible Informationen und ist erforderlich für moderne Browser-Vertrauensindikatoren. AlexHost bietet SSL-Zertifikate, die sich nahtlos in Ihre Hosting-Umgebung integrieren.
Zusätzliche Produktionsüberlegungen
Umgebungsvariablen für sensible Einstellungen
Codieren Sie niemals sensible Werte wie SECRET_KEY, Datenbankpasswörter oder API-Schlüssel in settings.py. Verwenden Sie stattdessen Umgebungsvariablen:
pip install python-decoupleIn settings.py:
from decouple import config
SECRET_KEY = config('SECRET_KEY')
DEBUG = config('DEBUG', default=False, cast=bool)Setzen Sie DEBUG in der Produktion auf False
DEBUG = FalseDas Ausführen mit DEBUG = True in der Produktion zeigt detaillierte Fehlerseiten und sensible Konfigurationsinformationen für potenzielle Angreifer.
Konfigurieren Sie einen Domänennamen
Wenn Sie noch keinen Domänennamen für Ihr Django-Projekt registriert haben, macht die Domänenregistrierung über AlexHost es einfach, Ihre Domäne schnell auf Ihren Server zu verweisen, mit vollständiger DNS-Verwaltung inbegriffen.
Wählen Sie das richtige Hosting für Ihre Django-Anwendung
Die Hosting-Umgebung, die Sie wählen, hat einen großen Einfluss auf die Leistung, Zuverlässigkeit und Skalierbarkeit Ihrer Django-Anwendung. Hier ist ein kurzer Leitfaden:
| Anwendungsfall | Empfohlenes Hosting |
|---|---|
| Entwicklung & Tests | Shared Web Hosting |
| Kleine bis mittlere produktive Apps | VPS Hosting |
on All Hosting Services
