3.1 概述与特性


3.1 概述与特性

本节摘要:Django 是 Python 最主流的 Web 框架,以"全栈、电池齐全"著称。本节讲清它的定位、核心特性(自带后台、ORM、认证)、以及"为什么要学它"。

本节目标

阅读完本节,你应当能够:

  1. 说出 Django 的定位
  2. 列举核心特性
  3. 理解"电池齐全"的含义
  4. 对比它与 Spring Boot 的风格
  5. 判断适合场景

一、问题与直觉

"Python 写后端,为什么首选 Django?"——因为它"什么都有":后台管理、数据库 ORM、用户认证、表单处理……别的框架要装一堆第三方库,Django 自带。像买了一套"全配家具",拆箱即用。

二、核心原理

Django 的定位一句话:

2.1 核心特性

特性 说明
自带后台 管理界面开箱即用
ORM 数据库操作对象化
认证 用户系统内置
模板 页面渲染

2.2 与 Spring Boot 的风格对比

维度 Spring Boot Django
语言 Java Python
配置 注解驱动 约定 + 文件
后台 需集成 自带
风格 企业重 全栈快

💡 关键直觉:两者都是"全家桶",风格不同——Spring Boot 企业级重,Django 全栈快。选型看团队语言与项目定位。

三、工程实践要点

3.1 适合场景

场景 适合
内容型网站 非常适合(自带后台)
管理后台 非常适合
快速原型 非常适合
高并发极致 需调优

⚠️ 常见误区:以为 Django 只能做"页面网站"。用 Django REST Framework 同样能做纯 API——全栈框架不等于不能只做后端。

重点提炼

  • 要点一:Django 是 Python 最主流 Web 框架
  • 要点二:"电池齐全"——后台、ORM、认证自带
  • 要点三:全栈框架,页面 API 都能做
  • 要点四:内容型与管理后台是强项
  • 要点五:与 Spring Boot 风格不同,选型看语言
  • 要点六:拆箱即用,开发快

认识它了,下一节搭环境——环境搭建与项目初始化。

Django 的一天:一个最小示例

在深入细节前,先看一个 Django 应用的"最小骨架",体会"全栈框架"的写法。下面这段代码展示了:定义一个模型(对应数据库表)、在视图中查询、返回 JSON 数据。注意它不需要手写 SQL,也不需要单独配置数据库连接之外的任何东西。

# models.py 定义数据模型 from django.db import models class User(models.Model): name = models.CharField(max_length=50) age = models.IntegerField() # views.py 视图里使用模型 from django.http import JsonResponse def user_list(request): users = User.objects.all() data = [{"id": u.id, "name": u.name} for u in users] return JsonResponse(data, safe=False)

这个例子体现了 Django 的核心气质:模型类即表结构,对象操作即数据操作,视图函数即请求处理。你不用纠结"类怎么映射到表、查询怎么变成 SQL",框架全都包办了。后面几节会把这些环节逐个展开。

常见疑问

Q1:Django"电池齐全"到底指什么?

指框架自带一套完整的功能组件:管理后台、数据库 ORM、用户认证、表单处理、模板引擎、中间件、静态文件管理、国际化支持等。别的框架这些功能要靠第三方库拼装,Django 全部内置且经过整合验证。对中小项目来说,装一个 Django 就等于配齐了一套工具箱,不用再满世界找零件。

Q2:Django 适合做什么类型的项目?

它的强项是内容型网站、管理后台、内部系统、原型快速的业务应用——因为自带后台让你管理数据几乎零成本,ORM 让数据操作高效,模板引擎让页面开发直接。如果项目是高并发、极低延迟的纯 API 服务,Django 也能做(配合 Django REST Framework),但需要更多调优,这时可以评估 Node.js 或 Go 这类更轻的选择。

Q3:Django 和 Flask 怎么选?

Django 是"全家桶"(内置后台、ORM、认证),Flask 是"轻量核心"(只提供最基础的 Web 能力,其他靠扩展)。想快速做完整应用、团队要规范统一,选 Django;想要极致灵活、项目小而自定义程度高,选 Flask。本书选择 Django,因为它最能代表 Python 全栈开发的主流形态,学完后你完全有能力去理解和对比 Flask。

Q4:为什么说 Django 是全栈框架?

因为它的能力覆盖了"从数据库到页面"的完整链条:Model 管数据、View 管逻辑、Template 管页面渲染,还自带后台和用户系统。一个 Django 团队可以从建表做到页面展示,不用引入第二个框架。这种"一个人或小团队也能撑起整个产品"的能力,是它被个人开发者和创业团队青睐的原因。

工程实践要点

动手建议:不必急着搭环境,先在本节基础上做一步"纸面设计":设想一个"博客系统",在纸上列出用户、文章、评论三张表分别有哪些字段,想想它们之间的关联(一篇文章对应一个作者、一篇评论对应一篇文章)。然后再去读后面几节,你会发现模型定义、ORM 查询这些概念,就是在把你的设计用代码表达出来。先有设计,再学工具,效率会高很多。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U