Size: 3825
Comment:
|
Size: 3953
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 16: | Line 16: |
=== [Directories] === | ==== [Directories] ==== |
Line 41: | Line 41: |
=== [Applications] === | ==== [Applications] ==== |
Line 45: | Line 45: |
=== [Alias] === | ==== [Alias] ==== |
Line 49: | Line 49: |
=== [Server] === | ==== [Server] ==== |
Line 82: | Line 82: |
=== [Translation] === | ==== [Translation] ==== |
Line 88: | Line 88: |
== 编程 == | === 编程 === |
Line 98: | Line 98: |
=== 访问HTTP环境 === | ==== 访问HTTP环境 ==== |
Line 102: | Line 102: |
*HEADERS | *HEADERS |
Line 104: | Line 104: |
是关于HTTP头的一个字典:键是头名称,值是头信息的值。例如HEADERS[‘ACCEPT-LANGUAGE']将返回accept-language头部信息 | {{{ print HEADERS }}} |
Line 106: | Line 108: |
将会得到: | |
Line 107: | Line 110: |
{{{ {'accept-language': 'zh-cn,zh;q=0.5', 'accept-encoding': 'gzip,deflate', 'keep-alive': '300', 'accept': 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'user-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.7.12) Gecko/20050919 Firefox/1.0.7', 'accept-charset': 'gb2312,utf-8;q=0.7,*;q=0.7', 'connection': 'keep-alive', 'cookie': 'sessionId=XWPqs2hw', 'host': 'localhost'} }}} |
|
Line 108: | Line 114: |
*RESPONSE | |
Line 109: | Line 116: |
大小写不敏感 | |
Line 110: | Line 118: |
(先记在这里,将win2kpro的i386下的setupp.ini中的第二行最后三个数字改为270,安装时就不用输入序列号了 * 哈哈哈!欢迎分享 [wiki:self/KarrigellQuickIn Karrigell] 的体验!!! 不过上面这技巧是怎么发现的?描述一下子故事哪 -- ZoomQuiet |
{{{ {'Content-Type': 'text/html'} }}} |
Rockety的 Karrigell 使用体验
1. Karrigell
1.1. 配置文件
配置选项在配置文件中设定。默认为服务器目录中的Karrigell.ini。你可以在命令行把它设为其它的文件。
配置文件分为几个部分:
1.1.1. [Directories]
root
设置root选项为根目录的完整路径,你从那里发布文档。初始安装这一项没有设定,默认为服务器目录。
protected
受保护目录列表;对于这些目录中的每个脚本,执行前都会先执行一个叫AuthentScript.py的脚本。这个AuthentScript.py必须由管理员创建并放进目录。
默认,只有admin目录是受保护的。用“;”分割来添加更多的目录。
allow_directory_listing
如果一个url对应的目录没有index文件,由本项来决定谁可以看这个目录的内容:
all = 所有人 none = 没有人 admin = 只有管理员 - 它的登录密码由admin目录中的k_password.py来配置。
默认值是“admin”。
1.1.2. [Applications]
映射扩展名的MIME类型;据我所知这可以在Netscape上工作,但IE上不行。
1.1.3. [Alias]
你可以为某个目录指定一个别名。例如,如果你创建这个别名:scripts = C:\My Documents\Karrigell scripts,那么[http://localhost/scripts/index.htm]这个url就会访问c:\My Documents\Karrigell scripts\index.htm这个文件。
1.1.4. [Server]
port
设置服务器端口(默认为80)
debug
这个选项指定debug级别。如果设置为1,所有被导入的模块在每次导入时都会被重置,所以如果你改动了某个被导入的脚本你也不必重启服务器。
silent
如果这个选项被设置为1,控制台窗口就不打印任何消息。
zip
如果这个选项被设置为1,并且用户代理支持gzip编码(大多数浏览器支持),服务器压缩发送给用户代理的数据。这减少用户网络负荷,但多少会增加一点服务器的负荷。
global
这个选项指定所有脚本运行时需要导入的模块的路径。如果有这样一行:
global = %(base)s/myScript.py; %(base)s/myScript.py
则myScript和myScript模块都可以在所有脚本的名称空间中可用。
ignore
如果找不到就忽略的url列表(返回HTTP代码204而不是404)。默认忽略/favicon.ico。
1.1.5. [Translation]
指定应用程序使用的语言,无论浏览器的该选项是什么。如果不想做任何转译,就设置为lang=default,如果想使用英语,设置为lang=en,以此类推。
装载配置文件前karrigell设定了一个基本变量,它的值是服务器目录。参考默认配置文件Karrigell.ini中的%(base)s/。
1.2. 编程
在karrigell中编程有几中风格:
- 纯粹的python脚本,有一点不同,里面嵌有html
- karrigell服务,可以处理整个站点
- 象PHP那样,将python代码嵌入HTML
它们都会在这份文档中被描述,它们都使用同样的方式访问HTTP环境和表单域。
1.2.1. 访问HTTP环境
HTTP环境访问可以通过脚本名称空间中的全局变量来完成:
- HEADERS
print HEADERS
将会得到:
{'accept-language': 'zh-cn,zh;q=0.5', 'accept-encoding': 'gzip,deflate', 'keep-alive': '300', 'accept': 'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5', 'user-agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.7.12) Gecko/20050919 Firefox/1.0.7', 'accept-charset': 'gb2312,utf-8;q=0.7,*;q=0.7', 'connection': 'keep-alive', 'cookie': 'sessionId=XWPqs2hw', 'host': 'localhost'}
- RESPONSE
大小写不敏感
{'Content-Type': 'text/html'}