39. 结论
回顾本文所完成的工作:
章节 | 文件 | 目录 |
课程介绍 | ||
工作环境的搭建 | ||
[bases] | Python语言基础——语言结构——数据类型——函数——控制台输出——格式化字符串——类型转换——列表——字典——正则表达式 | |
[strings] | 字符串的表示法 – <str>类的方法 – 字符串的编码/解码在 UTF-8 | |
[exceptions] | 异常处理 | |
[fonctions] | 变量的作用域 – 参数传递方式 – 使用模块 – Python 路径 – 命名参数 – 递归函数 | |
[fichiers] | 读写文本文件 – 处理编码文件 UTF-8 – 处理文件 jSON | |
[impots/v01] | 应用练习第 1 版:所得税计算。该应用共有 18 个版本——第 1 版实现了过程化解决方案 | |
[imports] | 通过导入模块管理应用程序的依赖关系——介绍了一种依赖管理方法——该方法贯穿整篇文档——Python路径管理 | |
[impots/v02] | 应用程序的第 2 版延续了第 1 版的设计,将所有配置常量集中到一个配置文件中 | |
[impots/v03] | 应用程序的第3版在第2版的基础上,将函数封装在模块中——依赖管理通过配置实现——引入jSON文件,用于读取计算税款所需的数据并写入计算结果 | |
[classes/01] | 类——继承——方法与属性——getter/setter——构造函数——属性 [__dict__] | |
[classes/02] | 本文后续部分使用的类 [BaseEntity] 和 [MyException] 简介 – [BaseEntity] 简化了对象与字典之间的转换 | |
[troiscouches] | 分层架构与接口编程。本章介绍了本文档其余部分中使用的编程方法 | |
[impots/v04] | 应用程序第 4 版——此版本实现了一个采用分层架构、接口编程以及使用 [BaseEntity] 和 [MyException] 派生类的解决方案 | |
[databases/mysql] | SGBD 的安装 MySQL – 连接数据库 – 创建表 – 执行命令 SQL SELECT, UPDATE、DELETE、INSERT – 事务 – 带参数的查询 SQL | |
[databases/postgresql] | 安装 SGBD PostgreSQL – 连接数据库 – 创建表 – 执行命令 SQL SELECT, UPDATE、DELETE、INSERT – 事务 – 带参数的查询 SQL | |
[databases/anysgbd] | 编写与 SGBD 无关的代码 | |
[databases/sqlalchemy] | ORM(对象关系映射器)SqlAlchemy——ORM 允许以统一的方式处理不同的 SGBD - 类/表映射 SQL – 针对表的类映像进行操作 SQL | |
[impots/v05] | 税款计算应用程序第 5 版 – 采用第 04 版的分层架构以及ORM SqlAlchemy 处理 SGBD MySQL 和 PostgreSQL | |
[inet] | 互联网编程——TCP / IP 协议(传输控制协议 / 互联网协议)——HTTP (HyperText 传输协议)—— SMTP(简单邮件传输协议)—— POP(邮局协议)—— IMAP(互联网消息访问协议) | |
[flask] | 使用 Flask Web 框架的 Web 服务 – 页面显示 HTML – Web 服务 jSON – 请求 GET 和 POST – Web 会话管理 | |
[impots/http-servers/01] [impots/http-clients/01] | 应用练习第 6 版——创建一个采用多层架构的税额计算 Web 服务 jSON——为该服务器编写一个采用多层架构的 Web 客户端——客户端/服务器编程——使用模块 [requests] | |
[impots/http-servers/02] [impots/http-clients/02] | 应用程序练习第7版——对第6版进行了改进:客户端和服务器均支持多线程——[Logger] 用于记录客户端/服务器通信——[SendMail] 用于向应用程序管理员发送邮件 | |
[impots/http-servers/03] [impots/http-clients/03] | 应用练习第 8 版——第 7 版通过使用会话进行了改进 | |
[xml] | 使用模块 [xmltodict] 进行管理 XML | |
[impots/http-servers/04] [impots/http-clients/04] | 应用练习第 9 版——第 8 版已修改,以支持 XML 格式的客户端/服务器通信; | |
[impots/http-servers/05] [impots/http-clients/05] | 应用练习第10版——不再通过N个请求处理N名纳税人(GET),而是使用单个请求(POST),并将N名纳税人包含在请求主体中(POST) | |
[impots/http-servers/06] [impots/http-clients/06] | 应用演练第 11 版——应用程序的客户端/服务器架构已更改:[métier] 层从服务器转移到了客户端 | |
[impots/http-servers/07] | 应用练习第 12 版——此版本实现了一个 MVC 服务器(Model – View – Controller)服务器,该服务器可根据客户端请求,无差别地提供 jSON、XML 和 HTML。 本章实现了服务器版本 jSON 和 XML | |
[impots/http-clients/07] | MVC 服务器(版本 12)的 jSON 和 XML 客户端的实现 | |
[impots/http-servers/07] | 第 12 版 HTML 服务器的实现——使用 CSS Bootstrap 框架—— | |
[impots/http-servers/08] | 第13版应用练习——重构第12版代码——使用[flask_session]模块和Redis服务器进行会话管理——使用加密密码 | |
[impots/http-servers/09] [impots/http-clients/09] | 应用练习第 14 版——使用 CSRF 令牌实现 URL(跨站请求伪造) | |
[impots/http-servers/10] | 应用练习第 15 版——重构第 14 版的代码以处理两种类型的操作:ASV(显示视图操作),仅用于显示视图而不改变服务器状态; ADS(执行操作)——执行会改变服务器状态的操作,这些操作均以重定向至 ASV 操作结束,从而能够正确处理客户端浏览器的页面刷新 | |
[impots/http-servers/11] | 应用程序第 16 版——管理带前缀的 URL | |
[impots/http-servers/12] | 应用程序第 17 版——将第 16 版移植到 Apache / Windows 服务器 | |
[impots/http-servers/13] | 应用程序第18版——修复了第17版中的一个异常 |
税款计算的客户端/服务器应用程序实现了以下架构:

上述 [web] 层采用 MVC 架构实现:

本文内容信息量较大。坚持读完全文的读者将对基于 Python / Flask 的 MVC 网络编程有深入了解,进而也能对其他语言的 MVC 网络编程形成清晰的认识。
关于Flask框架的补充信息,可参阅作者Miguel Grinberg撰写的文档[https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world]。我阅读了其课程的部分内容,觉得讲解非常通俗易懂。该作者介绍了许多本文未涉及的概念。