Python

A collection of 7 posts

Nginx

使用 Nginx Upload Module 上传文件

从开始会写程序开始,一直都很讨厌处理上传文件,因为总觉得在自己写的 controller 里面从 HTTP Body 里读文件,然后再写到本地磁盘的过程是一件非常不(易)靠(出)谱(错)的事,总怕文件没有正确写入,而且常用的框架对于上传文件,都是直接将整个文件加载到内存中,当处理大文件上传时,内存岂不是要爆炸了。 后来知道了七牛和又拍云之类的云服务,顿时感觉对于文件上传的过程的瞬间简化了。类似与七牛之类的文件储存云服务一般都会提供文件直传的接口,直接在前端就把文件上传到了七牛的服务器,而不经过业务服务器,然后当文件上传成功后,可以选择让七牛通知(回调)到业务服务器。 但是一般只有『互联网』企业才会选择七牛之类的云服务,可惜我就没怎么待过『互联网』企业,所以一直都没有正式的使用过文件直传这种方式,甚是伤心。如果你没有用过七牛,强烈推荐你试用一下,这里有我的邀请链接,你注册成功,我将收到 40G 的免费流量

Docker

Docker Registry V2 Auth Server

由于工作原因,最近研究了下 Docker Registry V2 (以下内容如无特别说明,Registry 均指 Docker Registry V2)的私有化(这里所指的私有化并不是指的私有仓库,而是在私有云里面面向内部的共有仓库,并且对外隔离的)的定制化开发。 Registry 是 Docker 官方提供的镜像仓库,官方的 Docker Hub 就是基于 Registry 的,Registry 分为 V1 和 V2,V1 是我大爱的 Python 的写的,V2 是我现在大爱的 Golang 开发的,由于 V1 已经被官方抛弃了,所以目前的定制化是基于 V2

Docker

用 Docker 部署 Python Web Application

Tips: 下面的部分链接中带有小尾巴,谨点 去年的时候从阿里云捻过一次羊毛(云翼计划,如果愿意,可以是用我的阿里云推荐码,z9xy74 ),如今一年已过,这个服务器也过期了,但是上面跑了一个微信企业号的应用在,由于有一直在使用的需求,不能停止,但是阿里云的羊毛是青岛节点,延迟高,而且现在到期了,默认变成了按流量付费,顿时觉得随时会少一套房子了。于是重新买了一个阿里云的华东节点,准备迁移过来,并且也准备把 DigitalOcean 上的部分应用迁移回国。 Docker 环境的准备 镜像的初始化 MySQL Redis Web Application Nginx 和之前的比较 一些问题 参考 # Docker 环境的准备 使用阿里云提供的 [docker-engine](http://mirrors.aliyun.com/help/docker-engine)

Tornado

为 Tornado 增加 Session

Tornado 是我非常喜欢的一个框架,但是它缺失了很多功能模块,比如说 Session,正因为它啥都没有,所以我就爱上它了,这样可以方便自己撸轮子。:D Session 原理 为 Tornado 添加 Session SessionMixin 结合 Tornado Session Storage 感谢 # Session 原理 Session 是由于 HTTP 协议是无状态的,所以需要一种机制来保持客户端和服务器之间的会话。 HTTP 协议的流程是 Client -> Send Request -> Server -> Return Response 上述过程,是一次性的,

Python

一次面试题

投了张江某家公司的简历,然后通知去面试,结果连面试题都做不出来,真是悲剧啊。 面试题大意是 把手机号码里重复数字出现的次数按从多到少排列打印出来 因为我面试的是 Python 开发实习生,所以用 Python 实现,结果我没有在规定的时间里做出来,其实还是因为自己太差了,就不给自己找借口了。 然后回到寝室后,还是要自己再来做一下的。 phone_num = "13871387183" nums = dict() for i in xrange(10): nums[i] = phone_num.count(str(i)) nums = sorted(nums.iteritems(), key=lambda x: x[