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ührensource 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.

KonfigurationselementStandardwertFunktion
DEBUGTrueEntwicklungsmodus (muss nach der Bereitstellung auf False gesetzt werden)
DATABASESSQLiteDatenbankkonfiguration (standardmäßig SQLite, keine zusätzliche Installation erforderlich)
INSTALLED_APPSListe der integrierten AnwendungenIm Projekt registrierte Anwendungen
TEMPLATESDjangoTemplatesKonfiguration 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

# Dateipfad: blog_project/settings.py
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

# Dateipfad: blog_project/settings.py
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

# Dateipfad: blog/views.py
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

<!-- Dateipfad: blog/templates/blog/index.html -->
<!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

# Dateipfad: blog/urls.py
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

# Dateipfad: blog_project/urls.py
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