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 Engine | DTL(Django Template Language),支持继承与过滤 |
| Forms | 表单生成、校验、CSRF 防护 |
| Middleware | 请求/响应处理中间件链 |
| Migrations | 数据库迁移系统,版本化管理表结构 |
| Cache | 内置缓存框架(Memcached/Redis/数据库/文件) |
| i18n / l10n | 国际化与本地化 |
| Security | CSRF / XSS / SQL 注入 / 点击劫持防护 |
三、MVT 架构
Django 采用 MVT(Model-View-Template),是 MVC 的变体:
▼text复制代码用户请求 → URL Dispatcher → View → Model(数据)→ Template(渲染)→ 响应
| MVT 组件 | 对应 MVC | 职责 |
|---|---|---|
| Model | Model | 定义数据模型,通过 ORM 映射数据库 |
| View | Controller | 处理请求逻辑,调用 Model 取数据,选 Template 渲染 |
| Template | View | HTML 模板,负责展示层 |
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 应用 | 需要异步长连接的场景 |
| 快速原型开发 | — |
六、与同类框架对比
| 特性 | Django | Flask | FastAPI |
|---|---|---|---|
| 类型 | 全栈 | 微框架 | 现代 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个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
