Django 是什么?

Django 是什么

Django 是一个基于 Python 的高级、免费开源的 Web 框架,遵循 MVT(Model-View-Template)架构,由 Adrian Holovaty 和 Simon Willison 于 2003 年创建,2005 年正式开源,由 Django Software Foundation(DSF)维护。

一、核心定位

维度说明
语言Python
类型全栈(Full-stack)Web 框架
架构MVT(Model-View-Template)
设计哲学DRY、松耦合、快速开发、显式优于隐式、安全优先、内置电池(Batteries Included)
许可证BSD
官网https://www.djangoproject.com
口号"The web framework for perfectionists with deadlines"(为有截止日期的完美主义者而生)

二、Django 提供了什么

Django 是"内置电池"框架,开箱即用提供 Web 开发所需的大部分组件:

组件作用
ORM对象关系映射,用 Python 类操作数据库,无需写 SQL
Admin自动生成后台管理界面,CRUD 零代码
Auth内置用户认证、权限、会话系统
URL Dispatcher基于 URL 的请求路由分发
Template EngineDTL(Django Template Language),支持继承与过滤
Forms表单生成、校验、CSRF 防护
Middleware请求/响应处理中间件链
Migrations数据库迁移系统,版本化管理表结构
Cache内置缓存框架(Memcached/Redis/数据库/文件)
i18n / l10n国际化与本地化
SecurityCSRF / XSS / SQL 注入 / 点击劫持防护

三、MVT 架构

Django 采用 MVT(Model-View-Template),是 MVC 的变体:

text
复制代码
用户请求 → URL Dispatcher → View → Model(数据)→ Template(渲染)→ 响应
MVT 组件对应 MVC职责
ModelModel定义数据模型,通过 ORM 映射数据库
ViewController处理请求逻辑,调用 Model 取数据,选 Template 渲染
TemplateViewHTML 模板,负责展示层

Django 自身充当 Controller 的路由分发角色(URL Dispatcher)。

四、典型工作流

bash
复制代码
# 1. 创建项目 django-admin startproject myproject cd myproject # 2. 创建应用 python manage.py startapp myapp # 3. 定义模型(models.py) class Article(models.Model): title = models.CharField(max_length=200) # 4. 生成并应用迁移 python manage.py makemigrations python manage.py migrate # 5. 创建超级用户 python manage.py createsuperuser # 6. 启动开发服务器 python manage.py runserver

五、适用场景

适合不太适合
内容管理系统(CMS)高并发实时通信(用 Tornado/FastAPI)
电商、社交、博客平台纯 RESTful API 微服务(用 FastAPI/Flask)
企业内部系统极轻量小工具
数据驱动的 Web 应用需要异步长连接的场景
快速原型开发

六、与同类框架对比

特性DjangoFlaskFastAPI
类型全栈微框架现代 API 框架
ORM内置需 SQLAlchemy需 SQLAlchemy
Admin内置
异步部分(3.x+)需 async 扩展原生 async
学习曲线中等
适合全功能 Web灵活小项目高性能 API

七、知名项目使用案例

Instagram、Pinterest、Mozilla、Disqus、Bitbucket、知乎、豆瓣(部分)等大型网站均使用 Django 构建。


一句话总结:Django 是一个基于 Python 的全栈 Web 框架,采用 MVT 架构,内置 ORM、Admin、认证、模板、表单、迁移等完整组件,遵循 DRY 与安全优先哲学,适合快速开发数据驱动的 Web 应用,是"有截止日期的完美主义者"的首选框架。

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP