Skip to content

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版中的一个异常

税款计算的客户端/服务器应用程序实现了以下架构:

Image

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

Image

本文内容信息量较大。坚持读完全文的读者将对基于 Python / Flask 的 MVC 网络编程有深入了解,进而也能对其他语言的 MVC 网络编程形成清晰的认识。

关于Flask框架的补充信息,可参阅作者Miguel Grinberg撰写的文档[https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world]。我阅读了其课程的部分内容,觉得讲解非常通俗易懂。该作者介绍了许多本文未涉及的概念。