前言
Django個高級Python Web框架,遵循MTV(Model-Template-View)設計模式:
模型(Model):數據層,定義數據結構
模板(Template):表現層,處理用戶界面
視圖(View):業務邏輯層,處理請求響應
Django的核心作用
全棧Web開發:一站式解決前后端需求
ORM數據庫操作:用Python類代替SQL查詢
自動化管理界面:自動生成后臺管理系統
URL路由系統:優雅的URL設計
表單處理:數據驗證與清洗
用戶認證系統:完整的權限管理方案
國際化支持:多語言應用輕松實現
環境搭建
# 使用pip安裝最新版Django
pip install django# 驗證安裝
django-admin --version
# 創建名為mysite的項目
django-admin startproject mysite# 項目結構
mysite/manage.py # 項目管理腳本mysite/ # 項目配置目錄__init__.pysettings.py # 全局配置urls.py # 主路由配置asgi.py # ASGI配置wsgi.py # WSGI配置
運行
# 進入項目目錄
cd mysite# 啟動開發服務器
python manage.py runserver# 訪問 http://127.0.0.1:8000
創建Django應用
應用是Django項目的功能模塊,一個項目可包含多個應用。
創建應用
python manage.py startapp blog
注冊應用
# mysite/settings.py INSTALLED_APPS = [# ...'blog.apps.BlogConfig', # 添加新應用 ]
示例
1. 定義數據模型
# blog/models.py
from django.db import models
from django.contrib.auth.models import Userclass Post(models.Model):title = models.CharField(max_length=100)content = models.TextField()author = models.ForeignKey(User, on_delete=models.CASCADE)created_at = models.DateTimeField(auto_now_add=True)updated_at = models.DateTimeField(auto_now=True)def __str__(self):return self.title
2. 數據庫遷移
# 生成遷移文件
python manage.py makemigrations# 應用數據庫變更
python manage.py migrate
3. 創建視圖
# blog/views.py
from django.views.generic import ListView, DetailView
from .models import Postclass PostListView(ListView):model = Posttemplate_name = 'blog/post_list.html'context_object_name = 'posts'ordering = ['-created_at']paginate_by = 5class PostDetailView(DetailView):model = Posttemplate_name = 'blog/post_detail.html'
4. 配置URL路由
# blog/urls.py
from django.urls import path
from .views import PostListView, PostDetailViewurlpatterns = [path('', PostListView.as_view(), name='post-list'),path('post/<int:pk>/', PostDetailView.as_view(), name='post-detail'),
]# mysite/urls.py
from django.contrib import admin
from django.urls import path, includeurlpatterns = [path('admin/', admin.site.urls),path('blog/', include('blog.urls')),
]
結尾
Django為Web開發提供了全面而高效的解決方案,從簡單的博客系統到復雜的電子商務平臺都能勝任。通過本文的學習,本文主要介紹了Django框架的核心概念與架構,完整的應用開發流程,模型-視圖-模板的協作方式