EOF occurred in violation of protocol

我在使用 requests 的时候频繁遇到下面的错误:

EOF occurred in violation of protocol (_ssl.c:600)

这个错误在 Python2 和 Python3,macOS 和 Ubuntu 下都有出现。从报错信息中可以看出该错误与 HTTPS 握手相关。

这个错误在 这个 issue 中讨论得最为充分。

通过分析,我找到了这个问题产生的原因:在安装 requests 库的时候,没有正确安装 security 包。

下面是解决方案(针对 Ubuntu): 继续阅读EOF occurred in violation of protocol

Flask 502 错误解决:upstream sent too big header and invalid request block size

前段时间用 Flask 制作的一个网站在进行较大量计算时频繁出现 502 错误,在本地调试却无法重现发现,我怀疑是服务器配置问题。现已查明原因,分别是 Nginx 配置和 uwsgi 配置造成的。

继续阅读Flask 502 错误解决:upstream sent too big header and invalid request block size

开发一个 Flask 网站:基础知识

十一期间,我花了大概 5 天时间(每天3-4小时),用 Flask 开发了一个内部工具用来管理团队 KPI 。这个工具会交给其他同学继续开发,为了方便交流,我用几篇文章来描述一下如何从零开始快速上手 Flask 的开发流程。我会提供包括参考资料,书籍链接,学习顺序和方法,最佳实践等内容。 继续阅读开发一个 Flask 网站:基础知识

部署Flask + uWSGI + Nginx

  • 2017-01-06 更新: 增加 Flask 502 错误解决
  • 2017-04-12 更新 增加 uWSGI HTTPS 支持

作为一个选择综合症+洁癖患者,在部署 Flask app 的时候着实有点纠结。互联网上能找到的教程都不怎么靠谱,要么太老,要么太乱连话都说不通顺,更别提那些转了无数手的资料了。 uwsgi 的参数别名众多,各种旧版本的配置也不尽相同,让急着把自己的 Flask 站点搭建到正式服务器上的新手们无所适从。

我把自己的部署过程写出来,所有资源参考官方文档,我也尽量给出选择的原因。这教程适用于各个 linux 发行版。若有疑问,请留言。

继续阅读部署Flask + uWSGI + Nginx

Python web框架的选择

Python web框架的选择

  • 2016-12-13 更新: 加入 CherryPy

python web frameworks

一、缘起网站

大约十多年前(1998年),我做了人生中的第一个网站。那是用的语言是 ASP,工具是 FrontPage

后来(2000~2004年),我做了一段时间网站开发,负责前端到后端、美术到产品的所有内容,使用的语言是 ASPPHP,工具是 Macromedia DreamweaverEditplus

那时,我已经开始手写 CSS 和 HTML,并使用 <DIV> 重构网站了。

再后来,我就没有继续做网站了。

现在,因为众所周知的原因,我必须捡起这个老本行。由于一直都不太喜欢 PHP,我在考虑选择一个 Python Web 框架。 继续阅读Python web框架的选择