Django
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.
Kom godt i gang
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".
Klon dit repository
git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
Installer afhængigheder
pip install -r requirements.txt
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.
Push dine ændringer
git add .
git commit -m "Initial setup"
git push origin main
Lokal udvikling med Docker
Hvis du ikke har Python installeret lokalt, kan du bruge Docker til at køre din Django-applikation.
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',
}
}
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 = ['*']