Skip to content

Latest commit

 

History

History
129 lines (79 loc) · 9.29 KB

File metadata and controls

129 lines (79 loc) · 9.29 KB

零、前言

如果您在软件开发行业工作了 20 年,那么您肯定听说过一种名为 Python 的编程语言。Python 由 Guido van Rossum 创建,于 1991 年首次出现,从此吸引了全球许多软件开发人员的心。

然而,一门已经有 20 多年历史的语言是如何依然存在并日益流行的呢?

这个问题的答案很简单。Python 对任何东西(或几乎所有东西)都非常棒。Python 是一种通用编程语言,这意味着您可以创建简单的终端应用、web 应用、微服务、游戏以及复杂的科学应用。尽管可以将 Python 用于不同的目的,但 Python 是一种以易于学习而闻名的语言,它非常适合初学者以及没有计算机科学背景的人。

Python 是一种包含电池的编程语言,这意味着在开发项目时,大多数时候不需要使用任何外部依赖项。Python 的标准库功能丰富,大多数时候包含创建程序所需的一切,为了防止您需要标准库中没有的东西,PyPI(Python 包索引)目前包含 117652 个包。

Python 社区热情好客,乐于助人,多样化,对该语言充满热情,社区中的每个人都乐于互相帮助。

如果你仍然不相信的话,流行网站 StackOverflow 根据用户添加到该网站的问题数量公布了今年编程语言流行程度的统计数据,Python 是排名第一的语言之一,仅次于 JavaScript、Java、C#和 PHP。

现在是成为 Python 开发人员的最佳时机,让我们开始吧!

这本书是给谁的

本书面向熟悉 Python 并希望获得 web 和软件开发项目实践经验的软件开发人员。具备 Python 编程的基本知识。

这本书涵盖的内容

第 1 章实现天气应用,指导您开发终端应用,显示特定区域的当前天气和未来 5 天的天气预报。本章将向您介绍 Python 编程的基本概念。您将学习如何解析命令行参数以增加程序的交互性,并最终了解如何使用流行的 Beauty Soup 框架从网站中获取数据。

第 2 章使用 Spotify创建远程控制应用,将教您如何使用 OAuth 使用 Spotify API 进行认证。我们将使用 curses 库使应用更加有趣和用户友好。

第三章在 Twitter上投票,将教你如何使用 Tkinter 库使用 Python 创建漂亮的用户界面。我们将使用 Python 的反应式扩展来检测后端何时进行了投票,之后,我们将在用户界面中发布更改。

第 4 章汇率和货币转换工具将使您能够实现一个货币转换器,该转换器将从不同来源实时获取外汇汇率,并使用数据执行货币转换。我们将开发一个包含帮助函数的 API 来执行转换。首先,我们将使用开源的外汇汇率和货币转换 API(http://fixer.io/ )。 本章的第二部分将教您如何创建一个命令行应用,使用我们的 API 从数据源获取数据,并通过几个参数获得货币转换结果。

第 5 章使用微服务构建 Web Messenger,将教您如何使用 Python 微服务框架 Nameko。您还将学习如何为 Redis 等外部资源创建依赖项提供程序。本章还将涉及集成测试 Nameko 服务和对 API 的基本 AJAX 请求。

第 6 章通过用户认证微服务扩展 TempMessenger,将在第 5 章通过微服务构建 Web Messenger 的基础上构建您的应用。您将创建一个用户认证微服务,将用户存储在 Postgres 数据库中。使用 Bcrypt,您还将了解如何在数据库中安全地存储密码。本章还介绍如何创建 Flask web 界面以及如何利用 cookie 存储 web 会话数据。在这些章节结束时,您将具备创建可伸缩且内聚的微服务的良好条件。

第 7 章与 Django合作的在线游戏商店将允许您创建在线游戏商店。它将包含诸如按类别浏览视频游戏、使用不同标准执行搜索、查看每个游戏的详细信息、最后将游戏添加到购物车和下订单等功能。在这里,您将了解 Django 2.0、管理 UI、Django 数据模型等等。

第 8 章订单微服务将帮助您构建一个微服务,该微服务将负责接收来自我们在上一章中开发的 web 应用的订单。order microservice 还提供其他功能,如更新订单状态和使用不同标准提供订单信息的能力。

第 9 章通知无服务器应用,将向您介绍无服务器功能体系结构,以及如何使用 Flask 构建通知服务,并使用伟大的 Zappa 项目将最终应用部署到 AWS Lambda。您还将学习如何将第 7 章在线视频游戏商店中开发的 web 应用与 Django 集成第 8 章中开发的订单微服务订单微服务,以及无服务器通知应用。

充分利用这本书

为了在本地计算机上执行本手册中的代码,您需要以下内容:

所有其他要求将在我们完成各章的过程中安装。 本章中的所有说明都是针对 macOS 或 Debian/Ubuntu 系统定制的;然而,作者注意到只使用跨平台依赖项。

下载示例代码文件

您可以从您的账户www.packtpub.com下载本书的示例代码文件。如果您在其他地方购买了本书,您可以访问www.packtpub.com/support并注册,将文件通过电子邮件直接发送给您。

您可以通过以下步骤下载代码文件:

  1. 登录或注册www.packtpub.com
  2. 选择“支持”选项卡。
  3. 点击代码下载和勘误表。
  4. 在搜索框中输入图书名称,然后按照屏幕上的说明进行操作。

下载文件后,请确保使用以下最新版本解压或解压缩文件夹:

  • WinRAR/7-Zip for Windows
  • 适用于 Mac 的 Zipeg/iZip/UnRarX
  • 适用于 Linux 的 7-Zip/PeaZip

该书的代码包也托管在 GitHub 上的https://github.com/PacktPublishing/Python-Programming-Blueprints 。我们的丰富书籍和视频目录中还有其他代码包,请访问**https://github.com/PacktPublishing/** 。看看他们!

使用的惯例

本书中使用了许多文本约定。

CodeInText:表示文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄。下面是一个示例:“此方法将调用Runnerexec方法来执行执行对 Twitter API 的请求的函数。”

代码块设置如下:

def set_header(self):
    title = Label(self,
                  text='Voting for hasthags',
                  font=("Helvetica", 24),
                  height=4)
    title.pack()

当我们希望提请您注意代码块的特定部分时,相关行或项目以粗体显示:

def start_app(args):
    root = Tk()
    app = Application(hashtags=args.hashtags, master=root)
    app.master.title("Twitter votes")
    app.master.geometry("400x700+100+100")
    app.mainloop()

任何命令行输入或输出的编写方式如下:

python app.py --hashtags debian ubuntu arch

粗体:表示一个新术语、一个重要单词或您在屏幕上看到的单词。例如,菜单或对话框中的单词出现在文本中,如下所示。下面是一个例子:“上面写着,用你的用户名登录,紧接着是一个注销链接。试试看,然后点击链接注销”

Warnings or important notes appear like this. Tips and tricks appear like this.

联系

我们欢迎读者的反馈。

一般反馈:发送电子邮件feedback@packtpub.com并在邮件主题中提及书名。如果您对本书的任何方面有疑问,请发送电子邮件至questions@packtpub.com

勘误表:尽管我们已尽一切努力确保内容的准确性,但还是会出现错误。如果您在本书中发现错误,如果您能向我们报告,我们将不胜感激。请访问www.packtpub.com/submit-errata,选择您的书籍,点击 errata 提交表单链接,然后输入详细信息。

盗版:如果您在互联网上发现我们作品的任何形式的非法复制品,请您提供我们的位置地址或网站名称,我们将不胜感激。请通过copyright@packtpub.com与我们联系,并提供该材料的链接。

如果您有兴趣成为一名作家:如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请访问authors.packtpub.com

评论

请留下评论。一旦你阅读并使用了这本书,为什么不在你购买它的网站上留下评论呢?然后,潜在读者可以看到并使用您的无偏见意见做出购买决定,我们 Packt 可以了解您对我们产品的看法,我们的作者可以看到您对他们书籍的反馈。非常感谢。

有关 Packt 的更多信息,请访问packtpub.com