代码改变世界

Cherrypy体验1——使用python3

2009-12-16 21:38  Aggron  阅读(1530)  评论(0编辑  收藏  举报

最近学习Python3, 但Python3可用的web框架很少, 而cherrypy 3.2 rc1可用跑在Python3上。从SVN check out最新的代码(不要下载zip或者tar的代码包, RC版本随时可能修复BUG)

python3 setup.py install安装

 建立一个hello.py的文件

#usr/bin/env python3
#
coding:utf-8

import cherrypy

class HelloWorld(object):
    
def index(self):
        
return 'Hello World<br/>中文!'
    index.exposed 
= True

import os.path
conf 
= os.path.join(os.path.dirname(__file__), 'server.conf')

if __name__ == '__main__':
    cherrypy.quickstart(HelloWorld(), config
=conf)

在hello.py同级目录下建立配置server.conf的文件, 输入以下内容

[global]
server.socket_host 
= "127.0.0.1"
server.socket_port 
= 8080
server.thread_pool 
= 10

在终端中输入python3 hello.py

直接在浏览器中查看:

 head的代码

代码
1     @cherrypy.expose
2     def head(self):
3         cherrypy.response.headers["Content-Type"= "text/html;charset=utf-8"
4         message = ''
5         for h in cherrypy.response.headers:
6             message += '{0}:{1}\n'.format(h,cherrypy.response.headers[h])
7         return message

cherrypy http响应头中的Content-type charset的值默认是浏览器发送的Accept-Encoding列表中的第一个。

已经设置content-type charset='utf-8'可的http相应头却仍然是GB2312:

 

若要改成utf-8, 则在server.conf中添加tools.encode.encoding = 'utf-8'

关于tools.encode详细说明请参考文档http://www.cherrypy.org/wiki/BuiltinTools