Django

Vollständige Bereitstellungsanleitung für Django auf NStrim

Überblick

Django ist ein High-Level-Python-Webframework, das schnelle Entwicklung und sauberes, pragmatisches Design fördert. Es enthält ein ORM, ein Admin-Panel, ein Authentifizierungssystem und eine integrierte Template-Engine.

Bevor Sie beginnen
Stellen Sie sicher, dass Ihr Dashboard geöffnet ist - Sie benötigen die dort angezeigten Git-Anmeldedaten. Diese Vorlage enthält Django, Gunicorn, mysqlclient für MySQL-Unterstützung und Django REST Framework.

Schnellstart

1

Repository aus Vorlage erstellen

Gehen Sie in Ihrem Dashboard zum Tab Tools & Deployment. Klicken Sie auf "New Repository", wählen Sie die Django-Vorlage aus dem Dropdown, geben Sie einen Repository-Namen und eine Subdomain ein und klicken Sie auf "Create Repository".

2

Ihr Repository klonen

git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
3

Abhängigkeiten installieren

pip install -r requirements.txt
4

Datenbank konfigurieren & Migrationen ausführen

Aktualisieren Sie die Datenbankeinstellungen in settings.py (siehe Datenbank-Konfiguration unten), dann führen Sie aus:

python manage.py migrate
python manage.py runserver

Der Server läuft standardmäßig auf http://localhost:8000.

5

Ihre Änderungen hochladen

git add .
git commit -m "Initial setup"
git push origin main
Jeder Push zu Git stellt Ihre Anwendung automatisch bereit. Überprüfen Sie Ihre Modul-Arbeits-URL im Dashboard, um Ihre Live-Site zu sehen.

Lokale Entwicklung mit Docker

Wenn Sie Python nicht lokal installiert haben, können Sie Docker verwenden, um Ihre Django-Anwendung auszuführen.

Was ist Docker?
Docker erstellt isolierte "Container" mit der gesamten Software, die Sie benötigen (Python, pip), ohne diese auf Ihrem Computer zu installieren.

Befehle mit Docker ausführen

# Abhängigkeiten installieren
docker run --rm -v $(pwd):/app -w /app python:3.12 pip install -r requirements.txt

# Entwicklungsserver starten
docker run --rm -v $(pwd):/app -w /app -p 8000:8000 python:3.12 sh -c "pip install -r requirements.txt && python manage.py runserver 0.0.0.0:8000"

Datenbank-Konfiguration

Die NStrim-Plattform stellt Ihnen eine MySQL/MariaDB-Datenbank zur Verfügung. Aktualisieren Sie die DATABASES-Einstellung in Ihrer settings.py-Datei.

settings.py aktualisieren

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '<username>',
        'USER': '<username>',
        'PASSWORD': '<password>',
        'HOST': 'db.<session-domain>',
        'PORT': '3306',
    }
}
Wichtig
Ihr Datenbankname und Benutzername sind in der Regel identisch mit Ihrem Dashboard-Benutzernamen (z.B. student01). Überprüfen Sie den Anmeldedaten-Bereich Ihres Dashboards für die genauen Werte.

Projektstruktur

├── project/
│   ├── settings.py            # Projektkonfiguration
│   ├── urls.py                # Stamm-URL-Konfiguration
│   └── wsgi.py                # WSGI-Einstiegspunkt
├── app/
│   ├── models.py              # Datenbankmodelle
│   ├── views.py               # View-Funktionen / -Klassen
│   ├── urls.py                # App-URL-Muster
│   ├── serializers.py         # DRF-Serialisierer
│   ├── admin.py               # Admin-Panel-Konfiguration
│   └── templates/             # HTML-Vorlagen
├── static/                    # CSS, JS, Bilder
├── manage.py                  # Django-Management-CLI
├── requirements.txt           # Python-Abhängigkeiten
└── Dockerfile                 # Docker-Konfiguration
        

Häufige Aufgaben

Model erstellen

from django.db import models

class User(models.Model):
    name = models.CharField(max_length=100)
    email = models.EmailField(unique=True)
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.name

View erstellen

from django.http import JsonResponse
from .models import User

def user_list(request):
    users = list(User.objects.values('id', 'name', 'email'))
    return JsonResponse(users, safe=False)

URL-Konfiguration

from django.urls import path
from . import views

urlpatterns = [
    path('users/', views.user_list, name='user-list'),
]

Nützliche Befehle

python manage.py runserver Entwicklungsserver starten
python manage.py migrate Datenbankmigrationen ausführen
python manage.py makemigrations Neue Migrationen aus Model-Änderungen erstellen
python manage.py createsuperuser Admin-Benutzer für /admin-Panel erstellen
python manage.py shell Interaktive Python-Shell mit Django

Fehlerbehebung

OperationalError: (2002) Can't connect to MySQL server

Ursache: Der Datenbank-Host ist falsch oder nicht erreichbar.

Lösung: Überprüfen Sie, ob HOST in der DATABASES-Einstellung mit dem Datenbank-Host aus Ihrem Dashboard übereinstimmt.

OperationalError: (1045) Access denied for user

Ursache: Falscher Benutzername oder Passwort.

Lösung: Überprüfen Sie, ob USER und PASSWORD in Ihrer settings.py genau mit Ihren Dashboard-Anmeldedaten übereinstimmen.

No module named 'MySQLdb'

Lösung: Installieren Sie den MySQL-Client: pip install mysqlclient. Auf macOS benötigen Sie möglicherweise auch: brew install mysql-client.

DisallowedHost: Invalid HTTP_HOST header

Lösung: Fügen Sie Ihre Bereitstellungs-Domain zu ALLOWED_HOSTS in settings.py hinzu: ALLOWED_HOSTS = ['*']

Bereitstellungs-Workflow

Code-Änderung git push pip install Live!
Weitere Informationen finden Sie in der offiziellen Django Dokumentation.