首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Django 框架全面解读及实战示例

Django 框架全面解读及实战示例

作者头像
用户8589624
发布2025-11-15 12:26:56
发布2025-11-15 12:26:56
3330
举报
文章被收录于专栏:nginxnginx
Django 框架全面解读及实战示例

Django 是一个功能强大的 Python Web 框架,以其“快速开发、高效、优雅”而著称。它提供了从 Web 开发的数据库处理、模板引擎到路由管理的全套解决方案,特别适合构建中小型项目和快速迭代开发。


1. Django 简介
1.1 什么是 Django?

Django 是由 Python 编写的开源 Web 应用框架,其核心理念是 DRY (Don’t Repeat Yourself),即“不要重复自己”。通过内置的强大功能,Django 提供了高度集成的工具链,开发者无需重复造轮子即可完成复杂应用。

1.2 Django 的主要特点
  1. 快速开发:通过内置的 ORM 和管理后台,极大简化了常见的开发任务。
  2. 高度可扩展:支持插件式扩展,开发者可根据需求引入第三方库。
  3. 内置管理系统:自动生成的管理后台极大提升了开发效率。
  4. 安全性强:默认防范 SQL 注入、跨站脚本(XSS)、跨站请求伪造(CSRF)等常见攻击。
  5. 多种数据库支持:支持 MySQL、PostgreSQL、SQLite 等。

2. Django 的基本架构

Django 遵循 MVC (Model-View-Controller) 的设计模式,实际实现中被称为 MTV:

  • M (Model):数据层,负责与数据库交互。
  • T (Template):展示层,负责呈现用户界面。
  • V (View):业务逻辑层,处理请求和返回响应。

3. 快速上手 Django
3.1 安装 Django

确保已安装 Python 3.8 及以上版本。

代码语言:javascript
复制
pip install django
3.2 创建 Django 项目

运行以下命令创建一个新的项目:

代码语言:javascript
复制
django-admin startproject myproject

项目结构如下:

代码语言:javascript
复制
myproject/
    manage.py         # 项目管理入口
    myproject/
        __init__.py   # 包初始化文件
        settings.py   # 配置文件
        urls.py       # URL 路由配置
        wsgi.py       # 部署文件
3.3 启动开发服务器

进入项目目录并运行:

代码语言:javascript
复制
python manage.py runserver

打开浏览器访问 http://127.0.0.1:8000,即可看到 Django 的默认欢迎页面。


4. 构建第一个应用:博客系统
4.1 创建应用

在项目中创建一个名为 blog 的应用:

代码语言:javascript
复制
python manage.py startapp blog

创建后,需在 settings.pyINSTALLED_APPS 中注册:

代码语言:javascript
复制
INSTALLED_APPS = [
    ...
    'blog',
]
4.2 定义模型 (Model)

blog/models.py 文件中定义博客模型:

代码语言:javascript
复制
from django.db import models

class BlogPost(models.Model):
    title = models.CharField(max_length=100)  # 博客标题
    content = models.TextField()             # 博客内容
    created_at = models.DateTimeField(auto_now_add=True)  # 创建时间
    updated_at = models.DateTimeField(auto_now=True)      # 更新时间

    def __str__(self):
        return self.title

生成迁移文件并应用到数据库:

代码语言:javascript
复制
python manage.py makemigrations
python manage.py migrate
4.3 配置管理后台

blog/admin.py 注册模型:

代码语言:javascript
复制
from django.contrib import admin
from .models import BlogPost

admin.site.register(BlogPost)

启动服务器后,访问 http://127.0.0.1:8000/admin 即可使用 Django 的管理后台添加博客文章。

4.4 定义视图 (View) 和路由

blog/views.py 中定义视图函数:

代码语言:javascript
复制
from django.shortcuts import render
from .models import BlogPost

def blog_list(request):
    posts = BlogPost.objects.all()  # 查询所有博客
    return render(request, 'blog_list.html', {'posts': posts})

blog/urls.py 配置路由:

代码语言:javascript
复制
from django.urls import path
from . import views

urlpatterns = [
    path('', views.blog_list, name='blog_list'),
]

在项目的 urls.py 中引入 blog 的路由:

代码语言:javascript
复制
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/', include('blog.urls')),
]
4.5 创建模板

blog/templates 目录下创建模板文件 blog_list.html

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>博客列表</title>
</head>
<body>
    <h1>博客列表</h1>
    <ul>
        {% for post in posts %}
            <li>
                <h2>{{ post.title }}</h2>
                <p>{{ post.content }}</p>
                <small>创建于 {{ post.created_at }}</small>
            </li>
        {% endfor %}
    </ul>
</body>
</html>

启动服务器,访问 http://127.0.0.1:8000/blog,即可看到博客列表页面。


5. 高级功能
5.1 用户认证

Django 提供了完善的用户认证系统:

  • 注册:django.contrib.auth.forms.UserCreationForm
  • 登录:django.contrib.auth.views.LoginView
  • 权限管理:通过 PermissionGroup 模型实现。
5.2 API 开发

Django 可以通过 Django REST Framework (DRF) 快速构建 API 服务:

代码语言:javascript
复制
pip install djangorestframework

创建 RESTful API 的示例:

代码语言:javascript
复制
from rest_framework import serializers, viewsets
from .models import BlogPost

class BlogPostSerializer(serializers.ModelSerializer):
    class Meta:
        model = BlogPost
        fields = '__all__'

class BlogPostViewSet(viewsets.ModelViewSet):
    queryset = BlogPost.objects.all()
    serializer_class = BlogPostSerializer

配置路由:

代码语言:javascript
复制
from rest_framework.routers import DefaultRouter
from blog.views import BlogPostViewSet

router = DefaultRouter()
router.register(r'posts', BlogPostViewSet)

urlpatterns = [
    path('api/', include(router.urls)),
]
5.3 测试

Django 提供了内置的单元测试工具:

代码语言:javascript
复制
from django.test import TestCase
from .models import BlogPost

class BlogPostTestCase(TestCase):
    def setUp(self):
        BlogPost.objects.create(title="测试标题", content="测试内容")

    def test_blogpost_creation(self):
        post = BlogPost.objects.get(title="测试标题")
        self.assertEqual(post.content, "测试内容")

6. 总结

通过 Django,我们可以快速搭建功能强大的 Web 应用。从模型设计到模板渲染,Django 提供了完善的工具链,极大地降低了开发复杂度。如果你想进一步了解,可以阅读 Django 官方文档并尝试完成更多功能,如权限管理、第三方集成等。

期待你的 Django 项目! 🎉

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-11-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Django 框架全面解读及实战示例
    • 1. Django 简介
      • 1.1 什么是 Django?
      • 1.2 Django 的主要特点
    • 2. Django 的基本架构
    • 3. 快速上手 Django
      • 3.1 安装 Django
      • 3.2 创建 Django 项目
      • 3.3 启动开发服务器
    • 4. 构建第一个应用:博客系统
      • 4.1 创建应用
      • 4.2 定义模型 (Model)
      • 4.3 配置管理后台
      • 4.4 定义视图 (View) 和路由
      • 4.5 创建模板
    • 5. 高级功能
      • 5.1 用户认证
      • 5.2 API 开发
      • 5.3 测试
    • 6. 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档