Django Introduktionsguide: Byg hurtigt din første webapplikation
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ø.
-
Åbn en terminal eller kommandoprompt.
-
Opret en projektmappe, f.eks.
myproject:mkdir myproject cd myproject -
Opret og aktiver det virtuelle miljø:
python3 -m venv venv # Eller python -m venv venv source venv/bin/activate # Linux/macOS venv\Scripts\activate # WindowsNå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.
-
Mens du stadig er i din projektmappe (
myproject), skal du køre følgende kommando:django-admin startproject mysiteDette opretter en mappe ved navn
mysitei mappenmyproject, der indeholder skeletfilerne til Django-projektet. -
Gå til mappen
mysite:cd mysite -
Django-projektets mappestruktur er som følger:
mysite/ manage.py mysite/ __init__.py settings.py urls.py asgi.py wsgi.pymanage.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.
-
I
mysite-mappen skal du køre følgende kommando:python manage.py runserver -
Å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.
-
Åbn et nyt terminalvindue (hold udviklingsserveren kørende).
-
I
mysite-mappen skal du køre følgende kommando:python manage.py startapp myappDette opretter en mappe ved navn
myappimysite-mappen, der indeholder skeletfilerne til Django-applikationen. -
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.
-
I
mysite/settings.pyskal du tilføjemyapptil listenINSTALLED_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.
-
Rediger filen
myapp/views.pyog tilføj følgende kode:from django.http import HttpResponse def index(request): return HttpResponse("Hello, Django!") -
Opret en
myapp/urls.py-fil og knyt URL'en til visningsfunktionen: ```python from django.urls import path from . import viewsurlpatterns = [ path('', views.index, name='index'), ]
-
Inkluder
myapp/urls.pyimysite/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 ] -
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.
-
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_textDette definerer en model kaldet
Question, der indeholder to felter:question_text(CharField) ogpub_date(DateTimeField). -
Opret og anvend databasemigreringer:
python manage.py makemigrations myapp python manage.py migratemakemigrations-kommandoen opretter en migrationsfil baseret på din model, ogmigrate-kommandoen anvender migreringen på databasen.
7. Brug Django-administrationspanelet
Django tilbyder et kraftfuldt administrationspanel, der gør det nemt at administrere dine data.
-
Opret en superbruger:
python manage.py createsuperuserFølg anvisningerne for at indtaste brugernavn, e-mail og adgangskode.
-
Rediger filen
myapp/admin.py, og registrerQuestion-modellen:from django.contrib import admin from .models import Question admin.site.register(Question) -
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.
-
Opret en mappe ved navn
templatesimyapp-mappen, og opret en mappe ved navnmyappitemplates-mappen (myapp/templates/myapp). -
Opret en fil ved navn
index.htmlimyapp/templates/myapp-mappen, og tilføj følgende kode:Hello, Django! The current time is: {{ current_time }} -
Rediger filen
myapp/views.pyog 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. -
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.





