分类: Python/Ruby
2010-12-27 18:46:56
Quixote的部署
在Quixote官方白皮书中已经详细描述了Quixote的工作模式。Quixote可以使用Python自代的http_server(主要用于开发调试)和与Apache(或lighttpd)配合使用。
Quixote与Apache配合使用方式如下:
SCGI的配置
Quixote的网站上对SCGI的描述:SCGI协议是CGI协议的替代。它是一种应用程序与HTTP服务接口标准。它有些像FastCGI但他的设计更容易实现。
配置SCGI过程如下:
#aptitude install libapache2-mod-scgi python-scgi python-quixote
<Location "/qx">
SCGIServer localost:3000
SCGIHandler On
Location>
配置完成。SCGI的好处在于,修改了Python程序,不用重启Apache,只要重启SCGI就可以了。
第一个Quixote程序
一切就绪,我们来一次Quixote的完整之旅。
1
2 #!/usr/bin/python
3 # -*- coding: utf-8 -*-
4
5 from scgi.quixote_handler import QuixoteHandler, main
6 from quixote import enable_ptl
7 from quixote.publish import Publisher
8 enable_ptl() #启动PTL
9
10 def create_publisher():
11 from ourroot import RootDirectory
12 return Publisher(RootDirectory(), display_exceptions='plain')
13
14 if __name__ == '__main__':
15 from quixote.server import scgi_server
16 scgi_server.run(create_publisher, port=3000, script_name="/qx")
17
1
2 # -*- coding: utf-8 -*-
3 """这个是我们第一个例子的根目录
4 """
5 from quixote.directory import Directory
6
7 class RootDirectory(Directory):
8 _q_exports = [""]
9 def _q_index [html] (self):
10 print "debug message from the index page"
11 """
12
13
14
15
16
17
18 第一个例子有中文!
19
20
21 """
22
python /var/lib/python-support/python2.5/quixote/server/scgi_server.py \
--factory=FirstApp.create_publisher \
--script-name=/qx --port=3000
Quixote 中文化的要点
Quixote的中文设置好像很麻烦。其实随着python、Quixote版本的推进,现在这个问题已经很简单了。字符集使用的是utf-8。使用gb2312可能也是可以的。
1 class UTF8Publisher(Publisher):
2 quixote.DEFAULT_CHARSET = "utf-8"