Skip to content

39. 结论

让我们回顾一下本文中完成的工作:

章节
代码仓库
目录
   
 
课程概述
 
设置工作环境
[基础]
Python 语言的基础
– 语言结构 – 数据类型
– 函数 – 控制台输出 –
格式字符串 – 类型转换
– 列表 – 字典 – 正则
表达式
[字符串]
字符串表示法 –
<str> 类的方法 – 字符串的编码/解码
UTF-8 字符串
[异常]
异常处理
[函数]
变量作用域 – 参数
传递 – 使用模块 –
Python 路径 – 命名
参数 – 递归
函数
[文件]
读写文本文件 –
处理 UTF-8 编码的文件 –
处理 JSON 文件
[taxes/v01]
应用程序的第 1 版
练习:计算所得税
。该应用程序共有18个
个版本——第1版实现了
一种过程化解法
[导入]
管理应用程序
通过导入
模块——本文介绍了
管理方法
——该方法贯穿
文档中——管理
Python 路径
[imports/v02]
应用程序的第 2 版
在第 1 版的基础上,将
所有配置常量整合到一个
配置文件中,该文件还
管理 Python 路径
[impots/v03]
该应用程序的第 3 版
在第 2 版的基础上,通过使用
封装在
模块中封装的函数——
管理通过
配置文件——引入了一个
JSON文件来读取
用于税费计算,并写入
计算结果
[classes/01]
类 – 继承 – 方法
和属性 – 获取器/设置器 –
构造函数 – [__dict__]
属性
[classes/02]
[BaseEntity]
[MyException]
——[BaseEntity]
有助于实现对象/字典
转换
[三层]
分层架构与
基于接口的编程。
本章介绍了
文档
[taxes/v04]
应用程序的第4版——此
版本实现了一个
,采用分层架构,
基于接口的编程,以及
并使用从
[BaseEntity] 以及
[MyException]
[databases/mysql]
安装 MySQL 数据库管理系统 –
连接数据库 –
创建表 – 执行
SELECT、UPDATE、DELETE、
和 INSERT SQL 语句 –
事务 – 参数化
SQL查询
[数据库/PostgreSQL]
安装 PostgreSQL 数据库管理系统
– 连接数据库 –
创建表 – 执行
SELECT、UPDATE、DELETE
和 INSERT SQL 语句 –
事务 – 参数化
SQL查询
[数据库/任意DBMS]
编写与数据库管理系统无关的代码
[数据库/SQLAlchemy]
SqlAlchemy ORM(对象-
关系映射器)——一种 ORM
提供了一种统一的方法来
处理不同的数据库管理系统(DBMS)——
将类映射到 SQL 表 –
对类进行操作
表示 SQL 表
[taxes/v05]
税费计算应用程序的第5版
——采用分层
架构以及
SqlAlchemy ORM 配合
支持MySQL和PostgreSQL
数据库管理系统
[inet]
Web 编程 – TCP/IP
协议(传输控制
协议 / 互联网协议) –
HTTP 协议(超文本
传输协议) – SMTP
(简单邮件传输协议)
– POP(邮局协议)–
IMAP(互联网邮件访问
协议)
[flask]
使用 Flask Web
框架——显示一个
HTML 页面 – JSON Web 服务
– GET 和 POST 请求 –
管理 Web 会话
[impots/http-servers/01]
[taxes/http-clients/01]
应用程序第 6 版
练习——创建一个用于税费计算的 JSON Web
服务,采用
多层架构——编写
基于此服务器的
多层架构——
客户端/服务器编程 –
使用 [requests] 模块
[taxes/http-servers/02]
[taxes/http-clients/02]
应用程序的第7版
练习——第6版已改进:
客户端和服务器均
支持多线程——[Logger]
用于记录客户端/服务器
通信记录的实用工具 – [SendMail] 用于向
向应用程序
管理员
[taxes/http-servers/03]
[taxes/http-clients/03]
应用程序第8版
练习——第7版已通过
通过使用Web会话
[xml]
XML(扩展标记
语言) 管理与
[xmltodict] 模块
[taxes/http-servers/04]
[impots/http-clients/04]
应用程序第 9 版
练习——修改第8版
以包含客户端/服务器
[taxes/http-servers/05]
[taxes/http-clients/05]
应用程序第 10 版
练习——通过 N 次 GET 请求
纳税人,
使用单个 POST 请求
将这 N 位纳税人包含在 POST
正文中
[taxes/http-servers/06]
[taxes/http-clients/06]
应用程序第 11 版
练习——应用程序的
客户端/服务器架构
进行了修改:[业务]
从服务器移至
客户端
[taxes/http-servers/07]
应用程序的第12版
练习——此版本实现了
一个 MVC(模型–视图–
控制器)服务器,用于提供
JSON、XML 和 HTML
格式,具体取决于
客户端的请求。本章
实现了该服务器的 JSON 和 XML
版本
[impots/http-clients/07]
JSON 和
XML客户端的实现
(第12版)
[impots/http-servers/07]
HTML
服务器——使用
Bootstrap CSS 框架——
[impots/http-servers/08]
应用程序的第13版
练习——重构代码
(基于第12版)——会话
管理
[flask_session] 模块和
Redis 服务器——使用加密
密码
[imports/http-servers/09]
[impots/http-clients/09]
应用程序第14版
练习——实现 URL
使用 CSRF(跨站请求
)令牌
[impots/http-servers/10]
应用程序第15版
练习——重构代码
从第14版开始,以处理两种
操作类型:ASV(操作
显示视图),仅用于
用于显示视图,而
,以及
ADS(Action Do Something),
则执行会
——这些
操作最终都会重定向到
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 Web 编程有深入的理解,进而也能对其他语言中的 MVC Web 编程有扎实的掌握。

有关 Flask 框架的更多信息,可参阅作者 Miguel Grinberg 撰写的文档 [https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world]。我阅读了该课程的部分内容,觉得非常有启发性。作者在其中阐述了许多本文未涉及的概念。