PyCon主席教你学网络编程

Python 有着非常活跃的开发者社区。许多 Pythonistas 在工作之余,会给开源项目做贡献,在当地做演讲,甚至是主办地区活动。其中站在“金字塔顶端”的人中,就包括 PyCon US 大会的主席。本期推文的主角就是 PyCon US 2016 的主席,Brandon Rhodes。

Brandon 是 Dropbox 的工程师,和 Python 之父 Guido van Rossum 是同事。他热衷于传播 Python,经常在 Python 主题大会上演讲。从他的个人网站上看,从 2008 年至 2016 年,他总共做了 32 场演讲。他也从 2016 年开始担任 PyCon US 的主席,下一届也是他带着干。

不过,本期不是要详细介绍他的情况,而是让他教你怎么用 Python 进行网络编程


难道是请到微信群分享?还是搞视频直播?

那样是一次性的,而且覆盖的人群太小。更好的方法是写书了,就是这本《Python网络编程》。


Foundations of Python Network Programming

作者:Brandon Rhodes,John Goerzen
译者:诸豪文
页数:360
定价:79

EarlGrey:呵呵,准备送 5 本图灵样书给大家。简单看了下样书,翻译的质量还不错。

活动方式

  • 活动时间:2016 年 12 月 5 日 — 2016 年 12 月 7 日

  • 参与方式:

    • 在本期微信推送下方留言,回复任意一个两位数(如11)

    • 转发本期图文

  • 获奖条件:

    • 取 2016 年 12 月 8 日当日收盘时上证指数的十位和个位数字(比如,如果是 3789 ,那获奖数字就是“ 89 ”)

    • 最接近获奖数字的前5位同学(按留言时间),将获得赠书一本

  • 编程派保留此次活动的最终解释权。

注:数字留言不会显示在评论中。

有关本书的详细情况,请看下面的介绍。

本书主要内容

  • Python 3示例讲解,涵盖网络编程所有经典话题

  • 提供大量代码清单及示例

  • 从应用开发角度介绍网络编程基本概念、模块以及第三方库

毫无疑问,这本书的重点在于网络编程,示例脚本及代码片段使用Python 3来阐释。目的是帮助读者全面了解使用Python提供的工具构建网络客户端、网络服务器以及网络工具的最佳实践,最大化使用Python 3提供的功能来解决现代网络编程的问题。

本书源码获取地址:

https://github.com/brandon-rhodes/fopnp

Python 3提供给网络程序员的编程平台几乎在方方面面都有所改进,无论是基础性的(如将Unicode文本设为Python 3的默认字符串类型),还是特有的(如对SSL的正确支持、内置的用于异步编程的asyncio框架,以及对标准库中大大小小的模块的细微调整)。这是一个显著的进步,要知道, Python 2就已经是程序员在现代互联网环境中用来快速高效工作的最佳语言之一了。

主要特色

每个Python程序都编写成了一个模块。每个程序都会导入其依赖的模块,定义其函数或类,然后通过一个 if 语句来确保所有导入行为。只有在模块 name 为特殊字符串值 ‘main’ 时,该 if 语句对应的代码块才会执行。模块 name 为 ‘main’ ,表示该模块作为主程序执行。

大多数脚本使用标准库的argparse模块,而不是原始的sys.argv字符串列表来解析命令行选项和参数。这不仅阐明并记录了每个脚本被调用时表示的语义,还允许每个脚本的用户使用 -h 或者 —help 查询选项,在Windows或Unix的命令行中获取交互式的帮助文档。

程序通过在 with 控制语句中打开文件来进行合理的资源控制。 with 语句包含的代码块完成的时候,打开的文件会自动关闭。

大多数程序在进行字符串插值时已经转而使用现代的 format() 方法,以前则使用 string % tuple 的方法。后者在20世纪90年代有一定的意义,因为那时大多数程序员都通晓C语言。但对于现在进入这个领域的新人程序员来说,这种方法可读性较差,而且由于自定义的Python类不能对百分号格式符进行操作符重载,因此提供的功能也不够强大。

关于HTTP和万维网的章节侧重于更清晰地解释协议,并介绍Python所提供的大部分用于编写Web应用的现代工具。在解释HTTP协议时使用Requests库进行客户端操作,它提供的API相当实用。第11章提供了Flask和Django框架的示例。

Python 3大量改进了为编写安全的应用程序所提供的支持,关于SSL/TLS的内容值得期待。Python 2的 ssl 模块使用的是一个折中的方法——该方法功能较弱,甚至没有验证服务器的证书是否与Python连接的主机名对应。Python 3的 ssl 模块提供了一个设计更严谨、功能更丰富的API,以便用户安全方便地使用其特性。


点击阅读原文,查看更多 Python 教程和资源


阅读原文:http://mp.weixin.qq.com/s?timestamp=1480910543&src=3&ver=1&signature=VsvZORasbzURAK4hu2aWFAkWQwpSjvly0Y3DtecK7tfMpdOLZ2HW9FAlUfItCYy-FERTT*IvpPO3fnCEM-docw4yvcDkDXnlwVuUhRO3DQjLHWPvlxBTj*4S*X4j70bUBdI0pgiTZUBmAgQbrN10M82EtOV0FsOVdAyzVJpCE9k=

你可能感兴趣的:(PyCon主席教你学网络编程)