使用Django框架构建Python Web应用
前言
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框架的核心概念与架构,完整的应用开发流程,模型-视图-模板的协作方式