- 译者序
- 前言
- 第1章 问答环节
- 第2章 Python 如何运行程序
- 第3章 如何运行程序
- 第4章 介绍 Python 对象类型
- 第5章 数字
- 第6章 动态类型简介
- 第7章 字符串
- 第8章 列表与字典
- 第9章 元组、文件及其他
- 第10章 Python 语句简介
- 第11章 赋值、表达式和打印
- 第12章 if 测试和语法规则
- 第13章 while 和 for 循环
- 第14章 迭代器和解析,第一部分
- 第15章 文档
- 第16章 函数基础
- 第17章 作用域
- 第18章 参数
- 第19章 函数的高级话题
- 第20章 迭代和解析,第二部分
- 第21章 模块:宏伟蓝图
- 第22章 模块代码编写基础
- 第23章 模块包
- 第24章 高级模块话题
- 第25章 OOP:宏伟蓝图
- 第27章 更多实例
- 第28章 类代码编写细节
- 第29章 运算符重载
- 第30章 类的设计
- 第31章 类的高级主题
- 第32章 异常基础
- 第34章 异常对象
- 第35章 异常的设计
- 第36章 Unicode 和字节字符串
- 字符串基础知识
- Python 的字符串类型
- 文本和二进制文件
- Python 3.0 中的字符串应用
- 转换
- 编码 Unicode 字符串
- 编码非ASCII文本
- 编码和解码非ASCII文本
- 其他 Unicode 编码技术
- 转换编码
- 在 Python 2.6 中编码 Unicode 字符串
- 源文件字符集编码声明
- 使用 Python 3.0 Bytes 对象
- 序列操作
- 创建 bytes 对象的其他方式
- 混合字符串类型
- 使用 Python 3.0(和 Python 2.6)bytearray 对象
- 使用文本文件和二进制文件
- Python 3.0 中的文本和二进制模式
- 类型和内容错误匹配
- 使用 Unicode 文件
- 在 Python 3.0 中处理 BOM
- Python 2.6 中的 Unicode 文件
- Python 3.0 中其他字符串工具的变化
- Struct二进制数据模块
- pickle对象序列化模块
- XML解析工具
- 本章小结
- 本章习题
- 习题解答
- 第37章 管理属性
- 第38章 装饰器
- 第39章 元类
- 附录A 安装和配置
- 附录B 各部分练习题的解答
- 作者介绍
- 封面介绍
未来方向
当然,还有更多的内容可以探讨。例如,我们可以扩展类使它们更加实际,为它们添加新的行为,等等。例如,涨工资实际上应该验证工资增长比率在0到1之间,这是当我们在本书后面遇到装饰器的时候要添加的一个扩展。可能还会通过修改存储在对象中的状态信息以及用来处理对象的类方法,从而把这个例子变成一个个人联络数据库。我们还将给出一些建议的练习,帮助你开拓想象力。
我们还扩展了使用工具的范围,包括Python附带的工具以及开源世界中可以免费获取的工具:
GUI
目前,我们只能够使用交互提示的基于命令行的界面来处理数据库和脚本。我们还应该继续扩展对象数据库的易用性,添加一个图形化的用户界面来浏览和更新数据库记录。可以构建能够移植到Python的tkinter(在Python 2.6中是Tkinter)的GUI,或者可以移植到WxPython和PyQt这样的第三方工具的GUI。tkinter是Python自带的,允许我们快速地构建简单的GUI,并且是学习GUI编程技巧的理想工具;WxPython和PyQt使用起来更加复杂,但是往往能创建更高级的GUI。
Web站点
尽管GUI方便而且很快,但Web在易用性方面胜出。我们也可以实现一个Web站点来浏览和更新记录,而不是使用GUI和交互式提示。Web站点可以用Python自带的基本CGI脚本编程工具来构建,也可以用像Django、TurboGears、Pylons、web2Py、Zope或Google's App Engine这样的全功能的第三方Web开发框架来完成。在Web上,我们的数据可以仍然存储在shelve、pickle文件或其他基于Python的媒介中;处理它的脚本直接自动在服务器上运行,以响应来自Web浏览器和其他客户端的请求,并且它们生成HTML来与一个用户交互,而不是直接或通过框架API与用户交互。
Web服务
尽管Web客户端往往可以解析来自Web站点的回复中的信息(这种技术叫做屏幕抓取),我们还是应该更进一步提供一种更直接的方式来从Web获取记录:通过像SOAP或XML-RPC这样的一个Web服务接口来调用Python自身或第三方开源域所支持的API。这样的API以一种更加直接的形式返回数据,而不是嵌入一个回应页面的HTML中。
数据库
如果数据库变得更大或者更关键,我们可能甚至将其从shelve转移到像开源的ZODB面向对象数据库系统(OODB)这样的一个功能更完备的存储机制中,或者是像MySQL、Oracle、PostgreSQL或SQLite这样的一个更传统的基于SQL的数据库系统中。Python自身带有一个内置的、正在使用SQLite数据库,但是其他的开源选项也可以从Web上免费获得。例如,ZODB类似于Python的shelve,但是它解决了很多局限性,支持较大的数据库、并发更新、事务处理和内存中修改自动写入。像MySQL这样基于SQL的系统,为数据库存储提供了企业级的工具,并且可以在一个Python脚本中直接使用。
ORM
如果我们真的迁移到关系数据库中进行存储,不一定要牺牲Python的OOP工具。像SQLObject和SQLAlchemy这样的对象关系映射器(ORM),可以自动实现关系表和行与Python的类和实例之间的映射,这样一来,我们就可以使用常规的Python类语法来处理存储的数据。这种方法为shelve和ZODB提供了一个到OODB的替代,使得可以利用关系数据库和Python的类模型的双重威力。
尽管我希望这个介绍能够提起你进一步学习的胃口,但所有这些主题都很大程度上超出了本教程和本书的范围。如果你想要自己探究任何一个主题,查阅Web资料、Python的标准库手册以及像Programming Python这样关注应用程序的图书。在本书稍后,我挑选一个例子,介绍如何在数据库之上添加一个GUI和一个Web站点,从而允许浏览和更新实例记录。我希望最终在那里见到你,但是,让我们先返回到类的基础知识并完成核心Python语言的其他内容。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论