Django 是一個高級的 Python Web 框架,鼓勵快速開發和干凈、實用的設計。它遵循“不要重復造輪子(Don't Repeat Yourself, DRY)”的原則,內置了諸如用戶認證、內容管理、表單處理等常見功能,非常適合構建內容驅動的網站。
本文將帶你從零開始,逐步了解 Django 的基本概念、項目結構、視圖、模板、模型、路由等核心內容,并通過一個簡單的博客應用示例,幫助你快速上手 Django 開發。
一、Django 簡介
1. 什么是 Django?
Django 是一個由 Python 編寫的開源 Web 框架,采用 MTV(Model-Template-View) 架構模式:
- Model(模型):負責與數據庫交互,定義數據結構。
- Template(模板):負責展示層,即 HTML 頁面。
- View(視圖):處理業務邏輯,決定將哪些數據展示給模板。
2. Django 的特點
- 快速開發:內置大量實用功能,減少重復開發。
- 安全性強:自動防御常見的安全漏洞(如 XSS、CSRF)。
- 可擴展性高:支持多數據庫、緩存、中間件等高級功能。
- 社區活躍:擁有龐大的社區和豐富的第三方庫。
二、安裝 Django
1. 安裝 Python 環境
確保你已安裝 Python 3.8+,可以通過以下命令檢查:
python --version
2. 創建虛擬環境(推薦)
python -m venv venv
source venv/bin/activate # Linux/macOS
venv\Scripts\activate # Windows
也可以使用conda
3. 安裝 Django
pip install django
驗證是否安裝成功:
python -m django --version
三、創建你的第一個 Django 項目
1. 創建項目
django-admin startproject mysite
cd mysite
目錄結構如下:
mysite/
├── manage.py
└── mysite/├── __init__.py├── settings.py├── urls.py└── wsgi.py
2. 啟動開發服務器
python manage.py runserver
訪問 http://127.0.0.1:8000/
,看到 Django 的歡迎頁面表示項目創建成功。
四、創建第一個應用(App)
Django 鼓勵將功能模塊化,一個項目可以包含多個應用(App)。
1. 創建應用
python manage.py startapp blog
目錄結構如下:
blog/
├── migrations/
├── __init__.py
├── admin.py
├── apps.py
├── models.py
├── tests.py
└── views.py
2. 注冊應用
打開 mysite/settings.py
,在 INSTALLED_APPS
中添加:
INSTALLED_APPS = [...'blog',
]
五、編寫第一個視圖(View)
在 blog/views.py
中添加:
from django.http import HttpResponsedef index(request):return HttpResponse("歡迎來到我的博客!")
配置 URL 路由
- 在
blog
目錄下創建urls.py
:
# blog/urls.py
from django.urls import path
from . import viewsurlpatterns = [path('', views.index, name='index'),
]
- 在主項目的
urls.py
中包含:
# mysite/urls.py
from django.urls import include, pathurlpatterns = [path('blog/', include('blog.urls')),
]
現在訪問 http://127.0.0.1:8000/blog/
,你會看到頁面顯示“歡迎來到我的博客!”。
六、使用模板(Template)
1. 創建模板目錄
在 blog
應用下創建 templates/blog/
目錄:
blog/
└── templates/└── blog/└── index.html
在 index.html
中寫入:
<!DOCTYPE html>
<html><head><title>我的博客</title></head><body><h1>歡迎來到我的博客!</h1></body>
</html>
2. 修改視圖使用模板
# blog/views.py
from django.shortcuts import renderdef index(request):return render(request, 'blog/index.html')
刷新頁面,你會看到渲染后的 HTML 頁面。
七、使用模型(Model)管理數據
1. 定義模型
在 blog/models.py
中定義一個博客文章模型:
from django.db import modelsclass Post(models.Model):title = models.CharField(max_length=200)content = models.TextField()pub_date = models.DateTimeField(auto_now_add=True)def __str__(self):return self.title
2. 生成遷移文件
bash深色版本python manage.py makemigrations
3. 應用遷移
python manage.py migrate
4. 注冊模型到 Admin
在 blog/admin.py
中注冊模型:
from django.contrib import admin
from .models import Postadmin.site.register(Post)
5. 創建超級用戶
python manage.py createsuperuser
登錄 http://127.0.0.1:8000/admin
,你可以添加、編輯、刪除博客文章。
八、展示數據庫中的數據
1. 修改視圖,展示所有文章
def index(request):posts = Post.objects.all()return render(request, 'blog/index.html', {'posts': posts})
2. 修改模板,顯示文章列表
<!-- blog/index.html -->
<h1>我的博客</h1>
<ul>{% for post in posts %}<li>{{ post.title }} - {{ post.pub_date }}</li>{% endfor %}
</ul>
九、總結
通過本文,你已經完成以下內容:
- 創建了一個 Django 項目和應用
- 編寫了第一個視圖并配置了 URL 路由
- 使用模板渲染 HTML 頁面
- 定義模型并與數據庫交互
- 使用 Admin 管理后臺
- 查詢并展示數據庫中的數據
這只是 Django 的冰山一角。接下來可以學習:
- 表單處理(Form)
- 用戶認證(Authentication)
- REST API(使用 Django REST Framework)
- 部署到生產環境(如 Nginx + Gunicorn)
十、推薦學習路徑
- 官方文檔:Django documentation | Django documentation | Django
- 推薦書籍:
-
- 《Django for Beginners》
- 《Django for APIs》
- 推薦項目練習:
-
- 博客系統
- 任務管理系統
- 電商網站
附錄:常用命令匯總
命令 | 說明 |
| 創建項目 |
| 創建應用 |
| 啟動開發服務器 |
| 生成遷移文件 |
| 應用遷移 |
| 創建管理員用戶 |
| 進入 Django Shell |
| 運行測試 |