章节主张
Web 开发最重要的不是学会几个命令,而是理解‘数据、页面、请求、路由’如何被框架组织起来。
中文释读
前面你写过脚本、游戏、图表和 API 客户端,现在 Django 把这些能力引向更复杂的应用世界。作者没有一上来把你淹没在全套 Web 理论中,而是通过 Learning Log 这种小项目,让你渐渐看到框架的组织力:URL 模式、视图、模板、数据库对象和浏览器请求如何串起来。对初学者来说,这一章最大的收获就是‘程序终于像产品了’。
关键论点
- 框架帮开发者组织重复出现的应用结构。
- Django 将路由、模型、模板和视图明确分层。
- 从脚本思维切到请求-响应思维,是重要转弯。
行动清单
- 理解项目、应用、URL、视图和模板之间的关系。
- 不要死记命令,先抓住请求从哪里进、页面从哪里出。
- 用小步迭代理解框架结构。
源章节深读
第 18 章 Django ⼊门 随着互联⽹的发展,⽹站和移动应⽤程序之间的界线不再清晰,它们 都能够让⽤户以各种⽅式与数据交互。所幸,可以使⽤ Django 来创建 能同时作为动态⽹站和移动应⽤程序的项⽬。 Django 是最流⾏的 Python Web 框架,提供了⼀系列旨在帮助开发交互式⽹站的⼯具。本 章介绍如何使⽤ Django 来开发⼀个名为 “ 学习笔记 ” ( Learning Log )的 项⽬。这是⼀个在线⽇志系统,让你能够记录针对哪些特定主题学到 了哪些知识。 我们将先为这个项⽬制定规范,再为使⽤的数据定义模型。我们将使⽤ Django 的管理系统来输⼊⼀些初始数据,然后编写视图和模板,让 Django 能够创建⽹⻚。 Django 能够响应⽹⻚请求,还让你能够更轻松地读写数据库、管理⽤户, 等等。第 19 章和第 20 章将改进 “ 学习笔记 ” 项⽬,再将其部署到活动的服 务器上,让所有⼈都能够使⽤它。 18.1 建⽴项⽬ 在着⼿开发像 Web 应⽤这样的⼤项⽬时,⾸先需要制定规范( spec ),对 项⽬的⽬标进⾏描述。确定要达成的⽬标后,就能着⼿找出为达成这些⽬ 标⽽需要完成的任务了。
18.1 建立项目
18.1 建⽴项⽬ 在着⼿开发像 Web 应⽤这样的⼤项⽬时,⾸先需要制定规范( spec ),对 项⽬的⽬标进⾏描述。确定要达成的⽬标后,就能着⼿找出为达成这些⽬ 标⽽需要完成的任务了。 本节将为 “ 学习笔记 ” 项⽬制定规范,并进⼊项⽬开发的第⼀个阶段,包括 搭建虚拟环境以及构建 Django 项⽬框架。 18.1.1 制定规范 完整的规范要详细说明项⽬的⽬标,阐述项⽬的功能,讨论项⽬的外观和 ⽤户界⾯。
这节解决什么:这一节主要解决《第 18 章 Django 入门》里一个更具体的子问题:18.1 建立项目 该怎样落到实际代码或项目动作上。
怎么用到自己的系统:不要只把它当书中的小节标题,最好把它改写成一个你能亲手运行、修改或调试的微练习。
提醒:常见误区是只看懂例子表面流程,却没有把这一节抽成自己能迁移的规则。
18.2 创建应用程序
18.2 创建应⽤程序 Django 项⽬( project )由⼀系列应⽤程序组成,它们协同⼯作让项⽬成为 ⼀个整体。本章只创建⼀个应⽤程序,它将完成项⽬⾥的⼤部分⼯作。第 19 章将添加⼀个管理⽤户账户的应⽤程序。 当前,在前⾯打开的终端窗⼝中应该还运⾏着 runserver。请再打开⼀个 终端窗⼝(或标签⻚),并切换到 manage.py 所在的⽬录。
这节解决什么:这一节主要解决《第 18 章 Django 入门》里一个更具体的子问题:18.2 创建应用程序 该怎样落到实际代码或项目动作上。
怎么用到自己的系统:不要只把它当书中的小节标题,最好把它改写成一个你能亲手运行、修改或调试的微练习。
提醒:常见误区是只看懂例子表面流程,却没有把这一节抽成自己能迁移的规则。
18.3 创建网页:学习笔记主页
18.3 创建⽹⻚:学习笔记主⻚ 使⽤ Django 创建⽹⻚的过程分为三个阶段:定义 URL ,编写视图,以及编 写模板。按什么顺序完成这三个阶段⽆关紧要,但在本项⽬中,总是先定 义 URL 模式。URL 模式描述了 URL 的构成,让 Django 知道如何将浏览器 请求与⽹站 URL 匹配,以确定返回哪个⽹⻚。 每个 URL 都被映射到特定的视图。视图函数获取并处理⽹⻚所需的数据。 视图函数通常使⽤模板来渲染⽹⻚,⽽模板定义⽹⻚的总体结构。
这节解决什么:这一节主要解决《第 18 章 Django 入门》里一个更具体的子问题:18.3 创建网页:学习笔记主页 该怎样落到实际代码或项目动作上。
怎么用到自己的系统:不要只把它当书中的小节标题,最好把它改写成一个你能亲手运行、修改或调试的微练习。
提醒:常见误区是只看懂例子表面流程,却没有把这一节抽成自己能迁移的规则。
18.4 创建其他网页
18.4 创建其他⽹⻚ 制定好创建⽹⻚的流程后,就可以开始扩充 “ 学习笔记 ” 项⽬了。我们将创 建两个显⽰数据的⽹⻚,其中⼀个列出所有主题,另⼀个显⽰特定主题的 所有条⽬。对于每个⽹⻚,我们都将指定 URL 模式并且编写⼀个视图函数 和⼀个模板。在此之前,先创建⼀个⽗模板,项⽬中的其他模板都将继承 它。 18.4.1 模板继承 在创建⽹站时,⼀些通⽤元素会出现在所有⽹⻚中。
这节解决什么:这一节主要解决《第 18 章 Django 入门》里一个更具体的子问题:18.4 创建其他网页 该怎样落到实际代码或项目动作上。
怎么用到自己的系统:不要只把它当书中的小节标题,最好把它改写成一个你能亲手运行、修改或调试的微练习。
提醒:常见误区是只看懂例子表面流程,却没有把这一节抽成自己能迁移的规则。
18.5 小结
18.5 ⼩结 在本章中,你学习了如何使⽤ Django 框架来创建简单的 Web 应⽤程序。⾸ 先制定了简要的项⽬规范,在虚拟环境中安装了 Django ,创建了⼀个项 ⽬,并核实该项⽬已正确地被创建了。其次学习了如何创建应⽤程序以及 如何定义表⽰应⽤程序数据的模型:不仅了解了数据库,还明⽩了在修改 模型后, Django 可为迁移数据库提供什么帮助。接着学习了如何创建可访 问管理⽹站的超级⽤户,并使⽤管理⽹站输⼊了⼀些初始数据。
这节解决什么:这一节主要解决《第 18 章 Django 入门》里一个更具体的子问题:18.5 小结 该怎样落到实际代码或项目动作上。
怎么用到自己的系统:不要只把它当书中的小节标题,最好把它改写成一个你能亲手运行、修改或调试的微练习。
提醒:常见误区是只看懂例子表面流程,却没有把这一节抽成自己能迁移的规则。
辨析题
为什么很多人一接触 Django 会觉得世界突然复杂了?
因为它引入的不只是新语法,而是一整套多层协作的软件组织方式。