Django-Blogprojekt
Dieses Kapitel führt dich von Grund auf durch die Erstellung eines Blog-Projekts mit Django und hilft dir, die Projektstruktur und den Request-Lebenszyklus zu verstehen.
Umgebungsvorbereitung
Django ist ein Python-Webframework; du musst zuerst die Python-Umgebung überprüfen.
Öffne das Terminal und prüfe die Python-Version (erfordert 3.8 oder höher):
$ python3 --version Python 3.12.0
Virtuelle Umgebung erstellen und Django installieren
Eine virtuelle Umgebung ist Standardpraxis für Python-Projekte; sie gibt jedem Projekt eigene Abhängigkeiten, ohne dass sie sich gegenseitig beeinflussen.
$ python3 -m venv venv # 创建虚拟环境 $ source venv/bin/activate # 激活虚拟环境(Windows:venv\Scripts\activate) (venv) $ pip install django # 在虚拟环境中安装 Django
Überprüfe, ob die Installation erfolgreich war:
(venv) $ python -m django --version 5.0
Jedes Mal, wenn Sie ein neues Terminal öffnen, müssen Sie es zuerst ausführen
source venv/bin/activateAktivieren Sie die virtuelle Umgebung. Die Terminal-Eingabeaufforderung davor(venv)Zeigt an, dass Sie sich derzeit in der virtuellen Umgebung befinden.
Ein Django-Projekt erstellen
Django bietetdjango-admin startprojectVerwenden Sie den Befehl, um das Projekt zu initialisieren.
(venv) $ django-admin startproject blog_project (venv) $ cd blog_project
Nach der Ausführung wird die folgende Verzeichnisstruktur generiert:
blog_project/ ├── manage.py # 项目管理入口(启动服务器、执行迁移、创建 admin 等) ├── blog_project/ # 项目配置包 │ ├── __init__.py # 标识这是一个 Python 包 │ ├── settings.py # 全局配置(数据库、中间件、模板、静态文件等) │ ├── urls.py # 根 URL 路由表 │ ├── wsgi.py # WSGI 部署入口(生产环境用) │ └── asgi.py # ASGI 部署入口(WebSocket 用)
Den Entwicklungsserver starten
(venv) $ python manage.py runserver Watching for file changes with StatReloader Performing system checks... System check identified no issues (0 silenced). Starting development server at http://127.0.0.1:8000/
Rufen Sie http://127.0.0.1:8000/ im Browser auf; wenn Sie die Willkommensseite von Django sehen, bedeutet das, dass der Start erfolgreich war.
Der Entwicklungsserver verfügt über Hot Reload: Nach dem Speichern von geändertem Code startet der Server automatisch neu. Drücken Sie Ctrl+C, um den Server zu stoppen.
Wichtige Konfigurationshinweise für settings.py
settings.pyist die zentrale Konfigurationsdatei eines Django-Projekts, und jeder Konfigurationseintrag hat eine klare Bedeutung.
| Konfigurationselement | Standardwert | Funktion |
|---|---|---|
| DEBUG | True | Entwicklungsmodus (muss nach der Bereitstellung auf False gesetzt werden) |
| DATABASES | SQLite | Datenbankkonfiguration (standardmäßig SQLite, keine zusätzliche Installation erforderlich) |
| INSTALLED_APPS | Liste der integrierten Anwendungen | Im Projekt registrierte Anwendungen |
| TEMPLATES | DjangoTemplates | Konfiguration der Template-Engine |
| LANGUAGE_CODE | 'en-us' | Sprache (kann zu 'zh-hans' geändert werden) |
| TIME_ZONE | 'UTC' | Zeitzone (kann auf 'Asia/Shanghai' geändert werden) |
Sprache und Zeit auf die chinesische Umgebung umstellen:
Beispiel
LANGUAGE_CODE = 'zh-hans' # Admin-Oberfläche zeigt Chinesisch an
TIME_ZONE = 'Asia/Shanghai' # Zeitzone auf Peking-Zeit setzen
Erste App erstellen: blog
Djangos Projektorganisation ist:Ein Projekt enthält mehrere Apps.。
Jede App ist für ein eigenständiges Funktionsmodul verantwortlich (wie Blogs, Benutzer, Kommentare).
(venv) $ python manage.py startapp blog
Nach der Ausführung wird das Verzeichnis blog/ erzeugt:
blog/ ├── __init__.py ├── admin.py # 后台管理配置(第三章用到) ├── apps.py # 应用配置 ├── models.py # 数据库模型(第二章用到) ├── views.py # 视图函数(本章用到) ├── urls.py # 需要手动创建(应用级路由) └── migrations/ # 数据库迁移文件(第二章用到)
Nach dem Erstellen der App müssen Sie sie in settings.py registrieren:
Beispiel
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog', # Hinzugefügt: die Blog-App registrieren
]
Django-Request-Lebenszyklus
Das Verständnis, wie Requests in Django fließen, hilft dir, Probleme später schnell zu lokalisieren.
deviceInput-URL aufrufen → urls.py matchRouting → views.py Verarbeitungslogik → templates HTML rendern → return device ansehen。
Diese drei Schritte (URL → View → Template) sind das Grundgerüst der Django-Entwicklung.

Praktisch: Deine erste Django-Seite
Schritt 1: Die View-Funktion schreiben (views.py)
Beispiel
from django.shortcuts import render
# View-Funktion: empfängt Request, gibt Response zurück
def index(request):
# Die Rolle von render: Anfrage + Vorlage + Daten kombinieren, HTML-Antwort zurückgeben
return render(request, 'blog/index.html', {
'welcome': 'Willkommen beim EXAMPLE Blog',
'intro': Dies ist eine persönliche Blog-Präsentationsseite, die mit Django erstellt wurde.
})
Schritt 2: Die Template-Datei erstellen (templates)
Unter dem Verzeichnis blog/ erstellentemplates/blog/ein Unterverzeichnis, dann erstellenindex.html。
Beispiel
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>EXAMPLE Blog</title>
<style>
body { font-family: sans-serif; max-width: 800px; margin: 0 auto; padding: 40px 20px; }
h1 { color: #2c3e50; }
</style>
</head>
<body>
<h1>{{ welcome }}</h1>
<p>{{ intro }}</p>
</body>
</html>
Verwendung von Django-Template-Variablen
{{ variable name }}Die Syntax ist dieselbe wie der Interpolationsausdruck von Vue3. Die an render in views.py übergebenen Wörterbuchdaten können direkt im Template verwendet werden.
Schritt 3: Routing konfigurieren (urls.py)
Erstellen Sie es zuerst unter blog/urls.pyAls Routing auf Anwendungsebene.
Beispiel
from django.urls import path
from . import views
# Anwendungs-Routingtabelle
urlpatterns = [
path('', views.index, name='index'), # Leerer Pfad entspricht / Startseite
]
Verwenden Sie dann in der urls.py auf Projektebeneinclude()Anwendungsrouten importieren:
Beispiel
from django.contrib import admin
from django.urls import path, include # include importieren
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')), # Verbinde die Routen der Blog-App mit dem Wurzelpfad
]
Kapitelzusammenfassung
In diesem Kapitel hast du drei Dinge erledigt: eine virtuelle Umgebung erstellt und Django installiert, das Projekt mit startproject/startapp initialisiert und die vollständige Kette View → Template → URL geschrieben.
Kernaussage: Verstehe Djangos Projekt-/App-Hierarchie und beherrsche das dreistufige Entwicklungsmuster URL → View → Template.
Weitere Erweiterungen