Oversikt

Django er et Python-webrammeverk på høyt nivå som oppmuntrer til rask utvikling og rent, pragmatisk design. Det inneholder en ORM, et adminpanel, et autentiseringssystem og en innebygd malmotor.

Før du begynner
Sørg for at dashbordet ditt er åpent - du trenger Git-påloggingsinformasjonen som vises der. Denne malen inkluderer Django, Gunicorn, mysqlclient for MySQL-støtte og Django REST Framework.

Hurtigstart

1

Opprett repository fra mal

Gå til fanen Tools & Deployment i dashbordet. Klikk på "New Repository", velg Django-malen fra nedtrekksmenyen, skriv inn et repository-navn og et subdomene, og klikk deretter på "Create Repository".

2

Klon ditt repository

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

Installer avhengigheter

pip install -r requirements.txt
4

Konfigurer databasen og kjør migrasjoner

Oppdater databaseinnstillingene i settings.py (se Databasekonfigurasjon nedenfor), og kjør deretter:

python manage.py migrate
python manage.py runserver

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

5

Push endringene dine

git add .
git commit -m "Initial setup"
git push origin main
Hver push til Git distribuerer applikasjonen din automatisk. Sjekk Module Work URL i dashbordet for å se den kjørende siden din.

Lokal utvikling med Docker

Hvis du ikke har Python installert lokalt, kan du bruke Docker til å kjøre Django-applikasjonen din.

Hva er Docker?
Docker oppretter isolerte "containere" med all programvaren du trenger (Python, pip) uten å installere den på datamaskinen din.

Kjøre kommandoer med Docker

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

# Start utviklingsserveren
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"

Databasekonfigurasjon

NStrim-plattformen gir deg en MySQL/MariaDB-database. Oppdater DATABASES-innstillingen i settings.py-filen din.

Oppdater settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '<username>',
        'USER': '<username>',
        'PASSWORD': '<password>',
        'HOST': 'db.<session-domain>',
        'PORT': '3306',
    }
}
Viktig
Databasenavnet og brukernavnet ditt er vanligvis det samme som brukernavnet i dashbordet (f.eks. student01). Sjekk påloggingsdelen i dashbordet for nøyaktige verdier.

Prosjektstruktur

├── project/
│   ├── settings.py            # Prosjektkonfigurasjon
│   ├── urls.py                # Rot-URL-konfigurasjon
│   └── wsgi.py                # WSGI-inngangspunkt
├── app/
│   ├── models.py              # Databasemodeller
│   ├── views.py               # View-funksjoner/-klasser
│   ├── urls.py                # App-URL-mønstre
│   ├── serializers.py         # DRF-serialiserere
│   ├── admin.py               # Konfigurasjon av adminpanel
│   └── templates/             # HTML-maler
├── static/                    # CSS, JS, bilder
├── manage.py                  # Django-management-CLI
├── requirements.txt           # Python-avhengigheter
└── Dockerfile                 # Docker-konfigurasjon
        

Vanlige oppgaver

Opprett 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

Opprett 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-konfigurasjon

from django.urls import path
from . import views

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

Nyttige kommandoer

python manage.py runserver Start utviklingsserveren
python manage.py migrate Kjør databasemigrasjoner
python manage.py makemigrations Lag nye migrasjoner fra modellendringer
python manage.py createsuperuser Opprett admin-bruker for /admin-panelet
python manage.py shell Interaktivt Python-skall med Django

Feilsøking

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

Årsak: Databaseverten er feil eller utilgjengelig.

Løsning: Sjekk at HOST i DATABASES-innstillingen samsvarer med databaseverten fra dashbordet.

OperationalError: (1045) Access denied for user

Årsak: Feil brukernavn eller passord.

Løsning: Kontroller at USER og PASSWORD i settings.py stemmer nøyaktig med dashbordopplysningene.

No module named 'MySQLdb'

Løsning: Installer MySQL-klienten: pip install mysqlclient. På macOS kan du i tillegg trenge: brew install mysql-client.

DisallowedHost: Invalid HTTP_HOST header

Løsning: Legg til distribusjonsdomenet ditt i ALLOWED_HOSTS i settings.py: ALLOWED_HOSTS = ['*']

Distribusjons-arbeidsflyt

Kodeendring git push pip install Live!
For mer informasjon, besøk den offisielle Django-dokumentasjonen.