Python 的 WSGI 服务器 Gunicorn

Gunicorn 绿色独角兽 是一个Python WSGI UNIX的HTTP服务器。这是一个pre-fork worker的模型,从Ruby的独角兽(Unicorn )项目移植。该Gunicorn服务器大致与各种Web框架兼容,只需非常简单的执行,轻量级的资源消耗,以及相当迅速。

结构图:

uWSGI 的性能比较:

特点:

  • 本身支持WSGI、Django、Paster
  • 自动辅助进程管理
  • 简单的 Python配置
  • 允许配置多个工作环境
  • 各种服务器的可扩展钩子
  • 与 Python 2.x > = 2.5,3.x >= 3.2 兼容

安装:

$ pip install gunicorn $ cat myapp.py # -*- coding: utf-8 - from wsgiref.validate import validator from gunicorn import __version__ @validator   def app(environ, start_response):       if environ['REQUEST_METHOD'].upper() != 'POST': data = b'Hello, World!\n' else: data = environ['wsgi.input'].read()       start_response("200 OK", [           ("Content-Type", "text/plain"),           ("Content-Length", str(len(data)))       ])

阅读全文

python如何搭建http web服务器

使用python做了些很有趣的代码封装,希望能在php+nginx里调用,因为使用了第三方库的原因很难移植,除了用php执行python命令调用外,有什么更好的办法吗?

试了下,可以用python启一下webserver来实现http server的封装。下边实现一个用http接口访问python,执行简单的时间戳转日期,用来做示范。

#!/usr/bin/env python # -*- coding: utf-8 -*- """ File: python_server.py Desc: python服务测试 """ from BaseHTTPServer import BaseHTTPRequestHandler from BaseHTTPServer import HTTPServer import os import re import time import urllib #自定义处理程序,用于处理HTTP请求 class TestHTTPHandler(BaseHTTPRequestHandler): def

阅读全文

python发送post请求

python发送post请求代码示例:

import sys import httplib, urllib import traceback def post(params): '发送post请求' result = {'status':500, 'reason':'', 'response':'', 'headers':''} httpClient = None try: data = urllib.urlencode(params['data']) httpClient = httplib.HTTPConnection(params['hostname'], params['port'], timeout=30) if params.has_key('header'): httpClient.request("POST"

阅读全文

python的类属性与实例属性——继承与java或php的差异

写java、php写多了,以为python的类跟他们是一样的,结果今天遇到一个类属性的诡异现象,跟完发现在类属性上,python有个很特殊的地方,就是在子类调用父类的方法修改父类属性时,会影响到同进程的其它子类实例。例子如下:

class TestBase:  test={} def __init__(self, key):<br

阅读全文

python解析和打包protobuf

概述

Protocol Buffers,简称protobuf或pb,是Google公司开发的一种数据描述语言,类似于XML和JSON能够将结构化数据序列化用于数据存储、通信协议等方面。目前官方支持C++、JAVA、Python等三种编程语言。

与XML和JSON相比,protobuf在配置时将数据key映射为递增数字,使用二进制传输,并能够根据schema自动生成各语言的打包、解析回kv的代码,非常方便各语言数据互通,且有以下<span

阅读全文

使用python的包管理工具—pip

1 前言

pip 是一个Python包管理工具,主要是用于安装 PyPI 上的软件包,可以替代 easy_install 工具。

2 获取pip

2.1 编译pip

$ wget https://github.com/pypa/pip/archive/7.1.0.tar.gz
$ tar -zxvf pip-7.1.0.tar.gz && cd pip-7.1.0
$ python setup.py install
$ pip --version
$ pip install MySQL-python

2.2 使用包管理软件安装(推荐)

$ sudo yum install python-pip
$ sudo apt-get install python-pip

2.3 更新pip

$ pip install -U pip

3 pip基本使用

3.1 安装PyPI软件

$ pip install SomePackage
  [...]
  Successfully installed SomePackage

3.2 查看具体安装文件

$ pip show --files

阅读全文

python使用ConfigParser读写配置文件

Python 读取写入配置文件很方便,可使用内置的 configparser 模块,位置在 “python27/lib/configparser.py”,该模块支持读取类似ini/conf格式的配置文件。

基础读取函数

  • -read(filename)  直接读取文件内容
  • -sections()  得到所有的section,并以列表的形式返回
  • -options(section)  得到该section的所有option
  • -items(section)  得到该section的所有键值对
  • -get(section,option)  得到section中option的值,返回为string类型
  • -getint(section,option)  得到section中option的值,返回为int类型,还有相应的getboolean()和getfloat() 函数。

基础写入函数

  • -write(fp)  将config对象写入至某个 .init 格式的文件  Write an .ini-format representation of the configuration state.
  • -add_section(section)  添加一个新的section
  • -set( section, option, value)  对section中的option进行设置,需要调用write将内容写入配置文件 ConfigParser2
  • -remove_section(section)  删除某个 section
  • -remove_option(section, option)  删除某个 section 下的 option

代码示例

#config.ini文件
[main]
version = 20110921

[win]
pos = 0,0

#代码

>>>import ConfigParser # RawConfigParser 基本配置类 # ConfigParser 继承之RawConfigParser类,实现了智能特性<br

阅读全文

CentOs 6.x 升级 Python 版本

在CentOS 6.X 上安装 Python 2.7.X

CentOS 6.x 自带的python版本是 2.6 , 由于工作需要,很多时候需要2.7版本。所以需要进行版本升级。由于一些系统工具和服务是对 Python 有依赖的,所以升级 Python 版本需要注意。

升级步骤

如何欢乐的,没有痛苦的升级python版本 ,往下看 …

更新系统和开发工具集

更新指令

yum -y update
yum groupinstall -y 'development tools'

另外还需要安装 python 工具需要的额外软件包 SSL, bz2, zlib

yum install -y zlib-devel bzip2-devel openssl-devel xz-libs wget

源码安装Python 2.7.x

wget http://www.python.org/ftp/python/2.7.8/Python-2.7.8.tar.xz
xz -d Python-2.7.8.tar.xz
tar -xvf Python-2.7.8.tar

安装详情:

# 进入目录: cd Python-2.7.8

阅读全文