Översikt

Django är ett Python-webbramverk på hög nivå som främjar snabb utveckling och ren, pragmatisk design. Det innehåller en ORM, adminpanel, autentiseringssystem och mallmotor från start.

Innan du börjar
Se till att din dashboard är öppen – du kommer att behöva Git-uppgifterna som visas där. Den här mallen innehåller Django, Gunicorn, mysqlclient för MySQL-stöd och Django REST Framework.

Kom igång

1

Skapa repository från mall

Gå till fliken Tools & Deployment i din dashboard. Klicka på knappen "New Repository", välj Django-mallen från rullgardinsmenyn, ange ett repository-namn och en subdomän och klicka sedan på "Create Repository".

2

Klona ditt repository

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

Installera beroenden

pip install -r requirements.txt
4

Konfigurera databas och kör migreringar

Uppdatera databasinställningarna i settings.py (se Databaskonfiguration nedan) och kör sedan:

python manage.py migrate
python manage.py runserver

Servern körs som standard på http://localhost:8000.

5

Pusha dina ändringar

git add .
git commit -m "Initial setup"
git push origin main
Varje push till Git distribuerar din applikation automatiskt. Kontrollera din Module Work URL i dashboarden för att se din live-sajt.

Lokal utveckling med Docker

Om du inte har Python installerat lokalt kan du använda Docker för att köra din Django-applikation.

Vad är Docker?
Docker skapar isolerade "containrar" med all programvara du behöver (Python, pip) utan att installera dem på din dator.

Köra kommandon 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"

Databaskonfiguration

NStrim-plattformen tillhandahåller en MySQL/MariaDB-databas. Uppdatera inställningen DATABASES i din settings.py-fil.

Uppdatera settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '<username>',
        'USER': '<username>',
        'PASSWORD': '<password>',
        'HOST': 'db.<session-domain>',
        'PORT': '3306',
    }
}
Viktigt
Ditt databasnamn och användarnamn är vanligtvis samma som ditt användarnamn i dashboarden (t.ex. student01). Kontrollera avsnittet med inloggningsuppgifter i din dashboard för exakta värden.

Projektstruktur

├── project/
│   ├── settings.py            # Projektkonfiguration
│   ├── urls.py                # Rot-URL-konfiguration
│   └── wsgi.py                # WSGI-ingångspunkt
├── app/
│   ├── models.py              # Databasmodeller
│   ├── views.py               # View-funktioner / klasser
│   ├── urls.py                # App-URL-mönster
│   ├── serializers.py         # DRF-serializers
│   ├── admin.py               # Adminpanelens konfiguration
│   └── templates/             # HTML-mallar
├── static/                    # CSS, JS, bilder
├── manage.py                  # Django-hanterings-CLI
├── requirements.txt           # Python-beroenden
└── Dockerfile                 # Docker-konfiguration
        

Vanliga uppgifter

Skapa 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

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

Användbara kommandon

python manage.py runserver Starta utvecklingsserver
python manage.py migrate Kör databasmigreringar
python manage.py makemigrations Skapa nya migreringar från modelländringar
python manage.py createsuperuser Skapa adminanvändare för /admin-panelen
python manage.py shell Interaktivt Python-skal med Django

Felsökning

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

Orsak: Databasvärden är felaktig eller inte tillgänglig.

Lösning: Kontrollera att HOST i inställningen DATABASES matchar databasvärden från din dashboard.

OperationalError: (1045) Access denied for user

Orsak: Fel användarnamn eller lösenord.

Lösning: Dubbelkolla att USER och PASSWORD i din settings.py matchar dina inloggningsuppgifter från dashboarden exakt.

No module named 'MySQLdb'

Lösning: Installera MySQL-klienten: pip install mysqlclient. På macOS kan du också behöva: brew install mysql-client.

DisallowedHost: Invalid HTTP_HOST header

Lösning: Lägg till din distributionsdomän i ALLOWED_HOSTS i settings.py: ALLOWED_HOSTS = ['*']

Distributionsflöde

Kodändring git push pip install Live!
För mer information, besök den officiella Django-dokumentationen.