Cherrypy体验1——使用python3

最近学习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
中文!
'
    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

直接在浏览器中查看:
Cherrypy体验1——使用python3_第1张图片

 head的代码

ExpandedBlockStart.gif 代码
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:

Cherrypy体验1——使用python3_第2张图片 

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

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

 

转载于:https://www.cnblogs.com/aggron/archive/2009/12/16/cherrypy-python3-tutorial.html

你可能感兴趣的:(Cherrypy体验1——使用python3)