Karrigell 中文版官方文档 p01

1. Introduction

Karrigell 是一个用 Python 写的简单的 Web 解决方案。它被设计的简单易用:集成 web server 和数据库 (PyDbLite) ,可以通过简单的方式访问环境变量和表单字段,但是 Karrigell 的功能仍然很强大: Python 脚本在服务器的同一个进程被执行,服务器页面可以包含 HTML Python 代码 ( 就像 PHP,JSP,ASP) ,简单的身份验证, session 管理,国际化等。
 
Karrigell 也可以同其它 web server 一齐工作,像 Apache,Xitami LightTPD 都被 Karrigell 支持。并且当前流行的数据库 (sqlite,MySql,PostGresQL, ) 都可以通过相关的 Python API Karrigell 中使用。
Karrigell 的分发包里自带有一组示例文件,包括一个 Wiki server, 一个论坛,一个 blog 引擎和一个 portal

2.Installing Karrigell

首先我们要到 Python 语言的官方网站去下载并安装一个 2.3 或更高版本的 Python
 
然后我们把下载的 Karrigell 压缩文件解压到一个文件夹如 c:/Karrigell, 然后进入这个叫 Karrigell-2.3.5 的文件夹,我们把这个文件夹叫做服务器文件夹。

为了运行Karrigell,进入服务器文件夹然后打开控制台窗口运行

(server dir) >Karrigell-2.3.5>python Karrigell.py

我们会看到如下信息:
Karrigell 2.3.5 running on port 80
Debug level 1
Press Ctrl+C to stop

在浏览器中输入http://localhost,我们会看到Karrigell的主页。

我建议设置管理员用户名和密码:它们可用于许多程序,包括可用来管理Mysqlsqlite数据库。因此我们打开控制台窗口然后进入admin文件夹运行script k_password.py

 

(server dir) >Karrigell-2.3.5/admin>python k_password.py

然后输入用户名和密码。

3. The Web server

默认内置的web server是异步的,就像Python的标准模块asyncore asynchat。经过我测试后,发现它们很好用响应速度很快。

3.1 The Root Directory
根目录是用来放其它文件的文件夹它在 URL 中处于最顶端 ; 如,我们把 myfile.htm 放在根目录里,那么我们就可以通过 http://myhost/myfile.htm 来访问这个页面,其中 myhost 是我们主机的名字 ( 本机是 localhost).

刚安装Karrigell时,根目录默认是服务器目录下的webapps子目录。我们可以修改配置文件来改变这个设置。

3.2 Serving static files

要在Karrigell里使用静态文件(HTML文件,GIFJPEG图像,等)我们可以使用自己喜欢的工具创建然后把它们放在根目录里。

假设我们新建一个HTML文档叫做myFile.htm并把它放在根目录里,然后打开我们的浏览器输入d地址: http://myhost/myFile.htm,我们就可以看到文件显示在浏览器里了。

如果我们把静态文件放在一个子目录里,那么我们就需要给它起一个名字:如文件myImage.gif放在子目录Images里,我们就可以访问http://myhost/Images/myImage.gif

要想把这些文件放在根目录以外,我就要用到别名了。

如果一个地址没有指定文件名但是匹配一个目录,那么服务器将会依次查找index.html,index.htm,index.py,index.pih,index.hipindex.ks。如果都没有找到就会打印出这个目录的所有子目录和文件,如果找到多个index文件将会触发一个异常。

如果在路径里没有指定文件的扩展名,服务器就会查找文件可能的一个扩展名html,htm,py,pih,hipks。如果找到一个,这个文件就会被访问;如果找到多个文件名相同的文件,将会触发一个异常;如果文件没找到也会触发一个异常。

3.3 Command line options
命令行是:

python Karrigell.py [-P port] [-S] [-D] [initFile]

参数:

  • portHTTP的端口号(默认是80)
  • S 代表"silent"模式:默认的Karrigell打印出收到的每一个请求的跟踪信息。使用-S选项,将不会打印出来。
  • D 设置调试等级为1
  • initFile是一个配置文件。默认的是服务器目录下的Karrigell.ini文件。

. Configuration options

所有的配置选项都设置在一个配置文件里,默认的是服务器目录下的 Karrigell.ini文件,我们可以在命令行指定一个不同的文件。
 
变量 base在加载配置文件前设置Karrigell的位置,它的值就是服务器目录。可以参见Karrigell.ini文件里使用 %(base)s/的地方。
 
配置文件被分成几个部分:
 
[Directories]
root
设置 root选项为根目录的全称,它是我们访问文件的起始目录。在安装时是没有被设定的,默认是服务器目录下的webapps。
cgi
Cgi scripts存放的目录列表。
默认是服务器目录下的 webapps/cgi-bin目录。
protected
它的值是一组被保护的目录;在这些目录里都要有一个叫做 AuthentScript.py的脚本,在访问这些目录时首先执行这个脚本。这个脚本是把admin目录下的AuthentScript.py复制过来的。
 
默认的只保护 admin目录。可以使用“;”来分隔目录。
allow_directory_listing
如果一个 URL没有指定index文件而匹配了一个目录,这个选项用来决定哪些用户可以看到这个目录的内容:
  • all = all users
  • none = no user
默认是 ”none”。
hide_extensions
哪类文件被隐藏起来不能访问 (会返回一个403错误)。
hide_paths
一个匹配 url的正则表达式;如果匹配成功服务器会返回403错误。
 
它可以用来禁止访问一组目录。例如新建一个叫 cvs的版本控制的目录并且不希望别人访问,可以这样设置:
hide_paths = .*/cvs/.*
 
loggingFile
日志文件名。如果没有设置,服务器就不会记录日志。
loggingParameters
日志处理器的参数,可以查阅 Python的logging模块文档。
[Applications]
映射文件扩展名到 MIME类型;我们知道它们在Netscape里才会有用,Internet Explorer不会检查这些设置。
[Alias]
我们可以把一个别名关联到文件系统的一个路径。例如 ,我们创建这样一个别名:
scripts=c:/My Documents/Karrigell scripts
然后访问 htpp://localhost/scripts/index.htm 实际上访问的是 c:/My Documents/Karrigell scripts/index.html
PS:有点类似于IIS里的虚拟目录,但也不完全一样。
 
[Server]
port
 
设置 port选项用来改变HTTP端口(默认是80)。
reload_modules
如果设为 1,所有import的模块会在每次import时重新import,因此我们在改变import的脚本时不需要重新启动服务器。默认是1.
debug
debug指示是否希望在错误页面显示”Debug”按钮。我们可能为了安全的原因把它设置为0.默认是1(显示debug按钮)。
silent
如果 silent选项设置为1,那么控制台窗口将不会打印任何东西。
gzip
如果 gzip选项设置为1,并且用户代理支持gzip编码(大多数的浏览器都支持),服务器将会压缩发送到用户代理的数据。这会减少用户的网路流量但是服务器会损失一些效能。
global
global选项中,可以指定模块的路径它们会在运行Karrigell是被import。我们可以像这样设置一行:
global=%(base)s/myScript.py;%(base)s/myScript1.py
myScript myScript1 模块将会在命名空间里可以被所有的脚本使用。
ignore
 
当没有找到时而被忽略的一组 url列表(返回HTTP代码204代替404).
[Translation]
指定应用程序使用的语言,而忽略 web浏览器里的设置。如果不想任何转换可以设置lang=default,如果想转换成英语可以设置 lang=en ,等。
 
[VirtualHost name]
 
Karrigell支持虚拟主机的概念,允许在相同的服务器上使用不同的名字访问不同的主机。
为了指定一个虚拟主机我们要像下面这样在配置文件里加一行:
   [VirtualHost name]
name是主机的名字(像www.test.org)
 
在这个部分,我们要为这个指定的主机接收请求访问指定一个目录:
   root = /web/mydir

5. Karrigell with Apache, lighttpd and Xitami

未完成
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值