小易说IT 小易说IT

Django 框架介绍

Django 是Python 生态里经典的全栈 Web 框架,由 Adrian Holovaty 和 Simon Willison 在 2003 年开发,遵循 MTV(Model-Template-View)架构,设计理念:“电池内置(Batteries Included)”,自带大量组件,不用到处选第三方库搭基建。

官方口号:The web framework for perfectionists with deadlines(给赶工期的完美主义者用的 Web 框架)

✅ 核心特点

  1. 电池内置 自带 ORM、后台管理 Admin、表单验证、路由系统、用户认证、权限、CSRF 防护、XSS 防护、SQL 注入防护、缓存框架、国际化,开箱就能做完整业务系统。 对比 FastAPI/Flask:后两者是微框架,很多能力需要自己引入第三方包。

  2. MTV 架构(和 MVC 思想接近)

  • Model(模型):ORM,映射数据库表,定义字段、约束,操作数据库,不用手写原生 SQL(也支持原生 SQL)

  • Template(模板):服务端渲染模板引擎(DTL,Django Template Language),渲染 HTML

  • View(视图):业务逻辑层,接收请求、调用 Model、返回 Template/JSON

  1. DRY 原则(Don’t Repeat Yourself),减少重复代码

  2. 强大的内置 Admin 一行注册模型,自动生成后台管理页面,快速做管理系统、CMS、内部平台,这是 Django 最大亮点之一。

  3. 安全优先 默认开启 CSRF、XSS、SQL 注入防护、密码哈希存储,很多安全坑框架帮你屏蔽。

📦 配套常用生态

  • Django REST Framework(DRF):最主流扩展,用来开发 RESTful API,序列化、权限、分页、认证、视图集,非常成熟;很多人用 Django + DRF 做后端 API,前端用 Vue/React。

  • Celery:配合 Django 做异步任务、定时任务(短信、邮件、离线计算)

  • django-filter:数据过滤

  • django-allauth:第三方登录

  • django-cors-headers:跨域 CORS

🧩 适用场景

✅ 适合:后台管理系统、CMS、内容网站、电商后台、企业内部 OA、需要快速开发带管理端的项目、传统服务端渲染网站、中小型 API 服务 ❌ 不太适合:超高并发极简接口、轻量代理服务、只做简单接口、需要极致性能的微服务(这种一般选 FastAPI)

📝 极简 Demo 带你感受

1. 安装

pip install django
# 创建项目
django-admin startproject myproject
cd myproject
# 创建应用
python manage.py startapp myapp

2. 视图 myapp/views.py

from django.http import HttpResponse

def hello(request):
    return HttpResponse("Hello Django!")

3. 路由配置

项目 urls.py

from django.contrib import admin
from django.urls import path
from myapp.views import hello

urlpatterns = [
    path('admin/', admin.site.urls),
    path('hello/', hello),
]

4. 启动服务

python manage.py runserver

访问 http://127.0.0.1:8000/admin 就是自带后台。

⚖️ 和 Flask / FastAPI 简单对比

框架

类型

定位

特点

Django

全栈重框架

完整 Web 系统

内置 Admin、ORM、认证;开发管理系统极快,学习曲线略陡

Flask

微框架

灵活 Web

核心极简,组件自选,自由度高

FastAPI

现代异步框架

API 服务

原生 async,自动 OpenAPI 文档,性能好,适合接口服务

⚠️ 缺点

  1. 比较厚重,项目小的时候显得臃肿

  2. 模板引擎 DTL 功能偏弱,现在很多项目直接前后端分离,只用 Django+DRF 输出 JSON,不用它的 Template

  3. 原生同步,异步支持是后来版本才补齐,异步生态不如 FastAPI


本文原创作者:易君召,详见:https://www.yijunzhao.cc/about,转载请注明出处。

原文链接 https://www.yijunzhao.cc/archives/django-framework-introduction

欢迎访问 https://www.yijunzhao.cc/

https://www.yijunzhao.cc/