首页 > 代码库 > Karrigell和apache的结合

Karrigell和apache的结合

原文: http://www.devshed.com/c/a/Python/Karrigell-for-Python/

因为python并不是特别为web开发而生,所以现在很多的python使用者都在开发能够让python运行于web的框架.Karrigell就是现在为数众多的python/web框架之一.本文将对Karrigell做简要的介绍.

简介

Karrigell是一个功能强大且灵活的python/web框架,为web开发提供了多种解决方案.并且,很重要的,它的安装和使用都非常的简单.即使是python的初学者,也不会在使用Karrigell的时候犯迷糊,并且Karrigell也没有因为结构简单而限制python的一些特性.它提供了自己的web服务器完成工作,但是也非常容易的和其他的web服务器(例如apache)结合工作,所以如果你选择了Karrigell,你仍然可以使用之前一直在使用的web服务器.

这篇文章将从Karrigell的安装开始说起,介绍数个Karrigell的重要特性.

安装Karrigell

上面说了,Karrigell的安装一点都不麻烦.你要做的第一步是到 SourceForge 下载最新的Karrigell,当你下载了zip包后,将其解压缩到一个容易找到的目录.然后直接双击Karrigell.py启动Karrigell的内置web服务器.如果你现在并不想把Karrigell和其他的web服务器结合使用,那Karrigell的安装到此就结束了.

但如果你想要设置你的web服务器来和Karrigell结合,我们拿apache来举例子.我们现在需要Karrigell在apache的后台运行,来使apache将相关的请求传送给Karrigell
因为apache一般会运行在80端口,你需要给Karrigell设置一个其他的运行端口.有两个方法来达到这个目的,其一是使用命令行来完成,或者可以改变Karrigell的配置文件.先来看如何用命令行,我们将在8080端口运行Karrigell.

C:\Karrigell>Karrigell.py -P 8080

第二种,你需要找到Karrigell.ini,然后加上这么一句

port=8080

现在你需要配置apache将有关的请求转向到Karrigell.一般来说,你希望apache可以处理任何的静态文件请求,比如php.你可以和apache共享同一个路径, 也可以设立单独的路径..然后设置那些文件需要apache把请求传递给Karrigell,你需要添加下面的内容到apache的 httpd.conf 文件.

RewriteEngine On
RewriteRule ^/(.*).py(.*) http://localhost:8080/$1.py$2 [L,P]
RewriteRule ^/(.*).ks(.*) http://localhost:8080/$1.ks$2 [L,P]
RewriteRule ^/(.*).hip(.*) http://localhost:8080/$1.hip$2 [L,P]
RewriteRule ^/(.*).pih(.*) http://localhost:8080/$1.pih$2 [P]

如果你想, 你可以设置全部的特定文件请求都转给Karrigell.在本文中,我们将使用testarea这个路径,所以我们这样设置httpd.conf:

RewriteEngine On
RewriteRule ^/testarea(.*) http://localhost:8080/testarea$1 [P]

当然你可以这样:

RewriteEngine On
RewriteRule ^/testarea/(.*).py(.*)
http://localhost:8080/testarea/$1.py$2 [L,P]
RewriteRule ^/testarea/(.*).ks(.*)
http://localhost:8080/testarea/$1.ks$2 [L,P]
RewriteRule ^/testarea/(.*).hip(.*)
http://localhost:8080/testarea/$1.hip$2 [L,P]
RewriteRule ^/testarea/(.*).pih(.*)
http://localhost:8080/testarea/$1.pih$2 [P]

Karrigell和apache的结合