searoom » 日志 » KarriGell小结
KarriGell小结
Searoom 发表于 2008-10-04 12:03:24
1、什么是?
KarriGell是个轻型web框架,使用python实现。
2、如何使用?
从here下 载Karrigell,解压后即可使用,超级绿色。自带服务器也很方便,另也能和Apache很好结合。后,进入Karrigell所在目录,,运行 python Karrigell.py,在浏览器中输入localhost,即可看到Karrigell自带文档及入门手册。
Karrigell服务器有个配置文件,conf/Karrigell.ini,一般设置端口,别名,路径等
Karrigell.ini文件详解
具体字段含义如下:
[Directories]
root
设置root选项为根目录的完整路径,你从那里发布文档。初始安装这一项没有设定,默认为服务器目录,即指向为Karrigell/webapps/,这个选择你大可不必设置,因为是默认的。
protected
受保护目录列表;对于这些目录中的每个脚本,执行前都会先执行一个叫AuthentScript.py的脚本。这个AuthentScript.py必须由管理员创建并放进目录。
默认,只有admin目录是受保护的。用“;”分割来添加更多的目录。
allow_directory_listing
如果一个url对应的目录没有index文件,由本项来决定谁可以看这个目录的内容:
all = 所有人
none = 没有人
admin = 只有管理员 - 它的登录密码由admin目录中的k_password.py来配置。
默认值是“admin”。
[Applications]
映射扩展名的MIME类型;据我所知这可以在Netscape上工作,但IE上不行。
[Alias]
你 可以为某个目录指定一个别名。例如,如果你创建这个别名:scripts = /home/shengyan/mysite,那么http://localhost/scripts/index.htm这个url就会访问/home /shengyan/mysite/index.htm这个文件。
这一功能很有意思,可以将你的服务器目录与开发目录分开,同时又不至于影响你的工作。
[Server]
port
设置服务器端口(默认为80),建议使用这个选择,如果你的系统里还安装了Apache,如果直接运行python Karrigell.py,就是不能不启动服务器了,Karrigell.ini使用这个port设置功能后,会指向一个8081的服务器端口。
当然,你也可以不开启,但在启动服务器后,要指明端口:
python Karrigell.py -P 8081
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。
[Translation]
指定应用程序使用的语言,无论浏览器的该选项是什么。如果不想做任何转译,就设置为lang=default,如果想使用英语,设置为lang=en,以此类推。
装载配置文件前karrigell设定了一个基本变量,它的值是服务器目录。参考默认配置文件Karrigell.ini中的%(base)s/。
3、开发?
第一个主要是.pih文件,是html嵌入python方式,类似jsp。另外很方便的是,也可以直接.py文件中,输出html代码。
第二个是利用.ks文件,这个同样是python代码,可以把之前多个.pih页面写在一个.ks文件中,就可以实现整个网站功能。
4、优点 vs 缺点?
- 开发非常快速,结构清晰,很python化
- 小巧轻便,随你怎么用都没关系
- 没有url机制,路径不清晰,带参数
- 自己写的代码比较多,整一个从无到有的过程,不过自己很清楚在做什么
- 开发出来的页面比较朴素,要显示的好看则比较麻烦
- 。。。
如果刚开始比较熟悉其他python/web框架的话,可能会不怎么习惯KarriGell的开发方式,呵呵~至少我是的。不过嘛,习惯了,就发现各有各的好阿。同时也发现,不管是什么框架,大同小异的,只要真正去学,耐心去学,怎么可能学不会。
6、相关学习资料
Karrigell官方网站
Karrigell官方文档
Karrigell官方入门教程
Karrigell中文版官方文档
Karrigell初步安装及运行
Karrigell.ini配置详细参考
关于Karrigell的二三事
总之,学到很多,接下来就想要用起来并不断加深~
主动,耐心,思考,多练,调节
