返回介绍

未来方向

发布于 2024-01-29 22:24:15 字数 1909 浏览 0 评论 0 收藏 0

本教程到此结束了。此时,我们已经看到Python的OOP的所有基本机制的实际运作,并且,我们已经学习了在代码中避免冗余性及其相关可维护性问题的方法。我们还构建了功能完备的类来完成实际的工作。此外,我们还通过把对象存储到Python的shelve中创建了正式的数据库记录,从而使它们的信息持久地存在。

当然,还有更多的内容可以探讨。例如,我们可以扩展类使它们更加实际,为它们添加新的行为,等等。例如,涨工资实际上应该验证工资增长比率在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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文