Django Introduktionsguide: Byg hurtigt din første webapplikation

2/19/2026
6 min read

Django Introduktionsguide: Byg hurtigt din første webapplikation

Django er et avanceret Python-webframework med fokus på hurtig udvikling og et rent design. Det følger Model-Template-View (MTV)-arkitekturen og opfordrer til genbrug af kode og komponentisering. Denne guide vil trin for trin guide dig gennem oprettelsen af en simpel Django-applikation, så du hurtigt kan komme i gang.

1. Opsætning af miljø

Først skal du sikre dig, at Python er installeret på dit system. Django anbefaler at bruge Python 3.6 eller nyere.

1.1 Installation af Python

Hvis Python ikke er installeret på dit system, kan du downloade og installere det fra Pythons officielle hjemmeside.

1.2 Oprettelse af et virtuelt miljø (Virtual Environment)

For at isolere afhængigheder mellem forskellige projekter anbefales det kraftigt at bruge et virtuelt miljø.

  1. Åbn en terminal eller kommandoprompt.

  2. Opret en projektmappe, f.eks. myproject:

    mkdir myproject
    cd myproject
    
  3. Opret og aktiver det virtuelle miljø:

    python3 -m venv venv  # Eller python -m venv venv
    source venv/bin/activate  # Linux/macOS
    venv\Scripts\activate  # Windows
    

    Når det virtuelle miljø er aktiveret, vil din terminalprompt vise (venv), hvilket indikerer, at du bruger det virtuelle miljø.

1.3 Installation af Django

I det aktiverede virtuelle miljø skal du bruge pip til at installere Django:

pip install Django

Bekræft, at installationen er lykkedes:

python -m django --version

Du bør kunne se Djangos versionsnummer.

2. Oprettelse af et Django-projekt

Når Django er installeret, kan du oprette et nyt Django-projekt.

  1. Mens du stadig er i din projektmappe (myproject), skal du køre følgende kommando:

    django-admin startproject mysite
    

    Dette opretter en mappe ved navn mysite i mappen myproject, der indeholder skeletfilerne til Django-projektet.

  2. Gå til mappen mysite:

    cd mysite
    
  3. Django-projektets mappestruktur er som følger:

    mysite/
        manage.py
        mysite/
            __init__.py
            settings.py
            urls.py
            asgi.py
            wsgi.py
    
    • manage.py: Et kommandolinjeværktøj til administration af Django-projekter.
    • mysite/: En Python-pakke, der indeholder projektkonfigurationen.
      • __init__.py: En tom fil, der fortæller Python, at denne mappe skal betragtes som en Python-pakke.
      • settings.py: Projektets konfigurationsfil, f.eks. databaseindstillinger, fejlsøgningsfunktioner osv.
      • urls.py: URL-routingkonfiguration, der mapper URL'er til view-funktioner.
      • asgi.py: ASGI (Asynchronous Server Gateway Interface) konfigurationsfil til implementering af asynkrone applikationer.
      • wsgi.py: WSGI (Web Server Gateway Interface) konfigurationsfil til implementering af traditionelle synkrone applikationer.## 3. Start udviklingsserveren

Django leveres med en letvægts udviklingsserver, der gør det nemt for dig at udvikle og teste lokalt.

  1. I mysite-mappen skal du køre følgende kommando:

    python manage.py runserver
    
  2. Åbn din browser og besøg http://127.0.0.1:8000/. Du burde kunne se siden "It worked! Congratulations on your first Django-powered page.".

4. Opret en Django-applikation

Et Django-projekt kan indeholde flere applikationer. Lad os oprette en applikation ved navn myapp.

  1. Åbn et nyt terminalvindue (hold udviklingsserveren kørende).

  2. I mysite-mappen skal du køre følgende kommando:

    python manage.py startapp myapp
    

    Dette opretter en mappe ved navn myapp i mysite-mappen, der indeholder skeletfilerne til Django-applikationen.

  3. Django-applikationsmappestrukturen er som følger:

    myapp/
        __init__.py
        admin.py
        apps.py
        migrations/
            __init__.py
        models.py
        tests.py
        views.py
    
    • __init__.py: En tom fil, der fortæller Python, at mappen skal betragtes som en Python-pakke.
    • admin.py: Bruges til at konfigurere Django-administrationspanelet.
    • apps.py: Applikationskonfiguration.
    • migrations/: Bruges til at administrere databasemigreringer.
    • models.py: Definerer datamodeller (databasetabeller).
    • tests.py: Skriv testcases.
    • views.py: Definerer visningsfunktioner, der håndterer anmodninger og returnerer svar.
  4. I mysite/settings.py skal du tilføje myapp til listen INSTALLED_APPS:

    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'myapp',  # Tilføj myapp
    ]
    

5. Opret en simpel visning

Lad os nu oprette en simpel visning, der viser "Hello, Django!" i browseren.

  1. Rediger filen myapp/views.py og tilføj følgende kode:

    from django.http import HttpResponse
    
    def index(request):
        return HttpResponse("Hello, Django!")
    
  2. Opret en myapp/urls.py-fil og knyt URL'en til visningsfunktionen: ```python from django.urls import path from . import views

    urlpatterns = [ path('', views.index, name='index'), ]

  3. Inkluder myapp/urls.py i mysite/urls.py:

    from django.urls import include, path
    from django.contrib import admin
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('myapp/', include('myapp.urls')),  # Tilføj URL-konfigurationen for myapp
    ]
    
  4. Besøg http://127.0.0.1:8000/myapp/. Du burde kunne se siden "Hello, Django!".

6. Opret en model

Lad os oprette en simpel model til at gemme nogle data.

  1. Rediger filen myapp/models.py, og tilføj følgende kode:

    from django.db import models
    
    class Question(models.Model):
        question_text = models.CharField(max_length=200)
        pub_date = models.DateTimeField('date published')
    
        def __str__(self):
            return self.question_text
    

    Dette definerer en model kaldet Question, der indeholder to felter: question_text (CharField) og pub_date (DateTimeField).

  2. Opret og anvend databasemigreringer:

    python manage.py makemigrations myapp
    python manage.py migrate
    

    makemigrations-kommandoen opretter en migrationsfil baseret på din model, og migrate-kommandoen anvender migreringen på databasen.

7. Brug Django-administrationspanelet

Django tilbyder et kraftfuldt administrationspanel, der gør det nemt at administrere dine data.

  1. Opret en superbruger:

    python manage.py createsuperuser
    

    Følg anvisningerne for at indtaste brugernavn, e-mail og adgangskode.

  2. Rediger filen myapp/admin.py, og registrer Question-modellen:

    from django.contrib import admin
    from .models import Question
    
    admin.site.register(Question)
    
  3. Besøg http://127.0.0.1:8000/admin/, og log ind med den superbruger, du oprettede. Du burde kunne se modulet "Questions", hvor du kan tilføje, redigere og slette spørgsmål.

8. Brug skabeloner

Brug af skabeloner giver dig mere fleksibilitet til at generere HTML-sider.

  1. Opret en mappe ved navn templates i myapp-mappen, og opret en mappe ved navn myapp i templates-mappen ( myapp/templates/myapp ).

  2. Opret en fil ved navn index.html i myapp/templates/myapp-mappen, og tilføj følgende kode:

    
    
        
            Hello, Django!
        
        
            The current time is: {{ current_time }}
        
    
    
  3. Rediger filen myapp/views.py og brug skabelonen:

    from django.shortcuts import render
    import datetime
    
    def index(request):
        now = datetime.datetime.now()
        return render(request, 'myapp/index.html', {'current_time': now})
    

    render-funktionen indlæser skabelonen og sender dataene til skabelonen for rendering.

  4. Besøg http://127.0.0.1:8000/myapp/ igen. Du skulle kunne se en side, der indeholder det aktuelle tidspunkt.

9. Konklusion

Gennem denne guide har du lært om de grundlæggende Django-koncepter og hvordan man bruger dem, herunder opsætning af miljø, oprettelse af projekter og applikationer, definition af modeller, oprettelse af visninger og brug af skabeloner. Dette er kun begyndelsen, Django tilbyder et væld af funktioner, og du kan fortsætte med at lære og udforske for at bygge mere komplekse webapplikationer.

Published in Technology

You Might Also Like