Oversigt

Django er et Python-webframework på højt niveau, der fremmer hurtig udvikling og rent, pragmatisk design. Det inkluderer en ORM, admin-panel, autentificeringssystem og skabelonmotor indbygget.

Før du begynder
Sørg for at have dit dashboard åbent - du skal bruge de Git-loginoplysninger, der vises der. Denne skabelon inkluderer Django, Gunicorn, mysqlclient til MySQL-understøttelse og Django REST Framework.

Kom godt i gang

1

Opret repository fra skabelon

Gå til fanen Tools & Deployment på dit dashboard. Klik på "New Repository", vælg Django-skabelonen i dropdown-menuen, indtast et repository-navn og et subdomæne, og klik på "Create Repository".

2

Klon dit repository

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

Installer afhængigheder

pip install -r requirements.txt
4

Konfigurer database & kør migreringer

Opdater databaseindstillingerne i settings.py (se Databasekonfiguration nedenfor), og kør derefter:

python manage.py migrate
python manage.py runserver

Serveren kører som standard på http://localhost:8000.

5

Push dine ændringer

git add .
git commit -m "Initial setup"
git push origin main
Hver push til Git udruller automatisk din applikation. Tjek din Module Work URL på dashboardet for at se din live-side.

Lokal udvikling med Docker

Hvis du ikke har Python installeret lokalt, kan du bruge Docker til at køre din Django-applikation.

Hvad er Docker?
Docker opretter isolerede "containere" med al den software, du har brug for (Python, pip), uden at installere dem på din computer.

Kør kommandoer med Docker

# Install dependencies
docker run --rm -v $(pwd):/app -w /app python:3.12 pip install -r requirements.txt

# Run development server
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"

Databasekonfiguration

NStrim-platformen stiller en MySQL/MariaDB-database til rådighed. Opdater DATABASES-indstillingen i din settings.py-fil.

Opdater settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '<username>',
        'USER': '<username>',
        'PASSWORD': '<password>',
        'HOST': 'db.<session-domain>',
        'PORT': '3306',
    }
}
Vigtigt
Dit databasenavn og brugernavn er typisk det samme som dit dashboard-brugernavn (f.eks. student01). Tjek dashboardets loginoplysningssektion for præcise værdier.

Projektstruktur

├── project/
│   ├── settings.py            # Projektkonfiguration
│   ├── urls.py                # Rod-URL-konfiguration
│   └── wsgi.py                # WSGI entry point
├── app/
│   ├── models.py              # Databasemodeller
│   ├── views.py               # View-funktioner / klasser
│   ├── urls.py                # App-URL-mønstre
│   ├── serializers.py         # DRF-serializers
│   ├── admin.py               # Admin-panel-konfiguration
│   └── templates/             # HTML-skabeloner
├── static/                    # CSS, JS, billeder
├── manage.py                  # Django management CLI
├── requirements.txt           # Python-afhængigheder
└── Dockerfile                 # Docker-konfiguration
        

Almindelige opgaver

Opret en model

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

Opret et view

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'),
]

Nyttige kommandoer

python manage.py runserver Start udviklingsserver
python manage.py migrate Kør database-migreringer
python manage.py makemigrations Opret nye migreringer fra modelændringer
python manage.py createsuperuser Opret admin-bruger til /admin-panelet
python manage.py shell Interaktiv Python-shell med Django

Fejlfinding

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

Årsag: Database-host er forkert eller utilgængelig.

Løsning: Tjek at HOST i DATABASES-indstillingen matcher database-hosten fra dit dashboard.

OperationalError: (1045) Access denied for user

Årsag: Forkert brugernavn eller adgangskode.

Løsning: Tjek at USER og PASSWORD i din settings.py matcher dine dashboard-loginoplysninger præcis.

No module named 'MySQLdb'

Løsning: Installer MySQL-klienten: pip install mysqlclient. På macOS kan du også have brug for: brew install mysql-client.

DisallowedHost: Invalid HTTP_HOST header

Løsning: Tilføj dit udrulningsdomæne til ALLOWED_HOSTS i settings.py: ALLOWED_HOSTS = ['*']

Udrulnings-workflow

Kodeændring git push pip install Live!
For mere information, besøg den officielle Django-dokumentation.