Cherrypy体验1——使用python3
2009-12-16 21:38 Aggron 阅读(1536) 评论(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)
#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
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
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