还是前几月的时候,几乎在同一时间,自己接触到了 Gevent 和 Tornado 这两个已经不新的东西,那时那个 思绪混乱啊!似乎都支持异步,似乎都是无阻塞(non-blocking),性能似乎都好到个不行 (猛击)。知道两者虽是单线程, 但基于无阻塞的特性,战斗力那个是嗖嗖地上涨,运用得当的话,hold住上K个连接不是问题。虽然很感兴趣,虽然完全没弄清楚两者内里的实质,但为了完成工作,略略了解了

在网站开发阶段,对于静态资源文件比如JS,CSS等文件都是未经过压缩合并处理的,这对于访问量巨大的网站来说不仅浪费带宽,而且也会影响网站的访问速度。django-compressor的作用就是将静态文件压缩合并成一个文件,不仅减少了网站的请求次数,还能节省网络带宽。 本文分为两部分,第一部分介绍settings文件相关配置对静态文件的影响,然后再讨论Compressor的如何使用。如果你对sett

使用CDN 对于公有的静态资源,比如jquery.min.js、highlight.min.js等文件全部使用CDN,提高网站的访问速度。 合并静态文件 整个网站的css和js文件总共超过10个,如果等浏览器全部加载完这些文件大概需要3秒以上,如果是比较的网络环境体验可能更糟糕。因此在部署的时候把多个CSS文件合并成一个,JS合并的一个文件,使用的工具是Django-Compressor。合并后用

本文整理自Stack Overflow上的热门问答hidden features of python,早期有人做过类似的整理,但是内容比较旧而且比较粗糙,因此笔者在原文基础上加入自己的一些理解,另外那些高质量的评论也引入进来了。总之,这是一篇用心之作,希望你可以喜欢。 链式比较操作 >>> x = 5 >>> 1 < x < 10 True >>> 10 < x < 20 False >>> x

一次完整的HTTP请求过程从TCP三次握手建立连接成功后开始,客户端按照指定的格式开始向服务端发送HTTP请求,服务端接收请求后,解析HTTP请求,处理完业务逻辑,最后返回一个HTTP的响应给客户端,HTTP的响应内容同样有标准的格式。无论是什么客户端或者是什么服务端,大家只要按照HTTP的协议标准来实现的话,那么它一定是通用的。 HTTP请求格式 HTTP请求格式主要有四部分组成,分别是:请求行

map(function, sequence[, ...]) → list 创建一个新的列表,函数作用于原来列表中的每个元素 >>> map( int, [ "10", "12", "14", 3.1415926, 5L ] ) [10, 12, 14, 3, 5] 这个函数等效下面这个定义: def map(function, sequence): return [function(v

Gevent简介

介绍 gevent 是一个python网络框架,对应Java的netty框架,使用greenlet提供异步API,基于libevent ,它为各种并发和网络相关的任务提供了整洁的API. 快速基于libevent的event loop 基于greenlet的轻量级执行单元 重用python标准api(event,queue) 协同的socket和ssl模块 使用标准库和第三方模块写标准阻塞sock

contextlib. contextmanager ( func ) This function is a decorator that can be used to define a factory function for with statement context managers, without needing to create a class or separate __ente

需要准备: 一个墙外的VPS 1、安装shadowsocks服务器 更新软件源 sudo apt-get update 1 安装PIP环境 sudo apt-get install python-pip 1 使用pip命令安装shadowsocks sudo pip install shadowsocks

详细的讲述进程间通信在这里绝对是不可能的事情,而且笔者很难有信心说自己对这一部分内容的认识达到了什么样的地步,所以在这一节的开头首先向大家推荐著 名作者Richard Stevens的著名作品:《Advanced Programming in the UNIX Environment》,它的中文译本《UNIX环境高级编程》已有机械工业出版社出版,原文精彩,译文同样地道,如果你的确对在Linux下编