searoom » 日志 » Karrigell Web框架开发简介
Karrigell Web框架开发简介
Searoom 发表于 2008-10-03 16:18:07
Karrigell是一个语法简洁直观的Python Web框架。它支持任何一种数据库,ORM或者模板引擎,也可以让开发人员选择不同的编码方式。
Karrigell可以通过配置来与其它的web服务器一起工作如Apache,Xitami,LightTPD;Karrigell还可以结合Python的其它数据库(sqlite, mySql, PostGreSQL, ZODB, etc) 接口来创建数据库应用程序。
Karrigell还自带了一个对MySQL数据库表进行CRUD操作的应用程序,可以方便的创建和编辑MySQL并且可以在线生成脚本。
要想使用Karrigell创建动态页面,你需要知道HTML和Python的一些知识。你也要选择Karrigell提供的不同的编码方式。下面是“Hello world”程序使用的5种不同的编码方式:
|
Python script (hello.py)
|
Karrigell service (hello.ks)
|
|
print "Hello, world !"
|
def index():
print "Hello, world !" |
|
HTML Inside Python (hello.hip)
|
Python Inside HTML (hello.pih)
|
|
"Hello, world !"
|
Hello, world !
|
|
CGI script (hello.py
in folder cgi-bin) |
|
|
print "Content-type: text/html"
print "Hello, world !" |
|
如果要想像这样写一些Python代码的话,例如打印0到9的数字序列:
|
Python script
|
Karrigell service
|
|
print "<h1>Squares</h1>"
for i in range(10):
print "%s :<b>%s</b>" %(i,i*i)
|
def index():
print "<h1>Squares</h1>"
for i in range(10):
print "%s :<b>%s</b>" %(i,i*i)
|
|
HTML Inside Python
|
Python Inside HTML
|
|
"<h1>Squares</h1>"
for i in range(10):
"%s :<b>%s</b>" %(i,i*i)
|
<h1>Squares</h1>
<%
for i in range(10):
print "%s :<b>%s</b>" %(i,i*i)
%>
|
|
CGI script
|
|
|
print 'Content-type: text/html'
print
print "<h1>Squares</h1>"
for i in range(10):
print "%s :<b>%s</b>" %(i,i*i)
|
|
总之我们可以使用:
-
可以使用普通的Python脚本
-
Karrigell services是一种Python脚本,它的每一个函数都匹配一个不同的URL:foo.ks/bar匹配foo.ks脚本中的bar()函数(如果没有指定函数,默认使用index()函数)
-
HTML inside Python是另一种写Python脚本的方式,在运行时当遇到print语句就会把要输出的字符串发送给客户端浏览器
-
Python inside HTML是一种非常像ASP,JSP,PHP的写法,Python写在HTML页面<的% %>标记中
-
还可以直接使用CGI脚本:参见文档的cgi module章节
Python代码在一个包含HTTP环境,表单字段,自定义异常的命名空间下运行。当一个表单包括字段<INPUT name="myfield">,它的值可以在脚本中使用_myfield来得到。
在身份认证和Session方面,可以在脚本中使用两个叫做Authentication和Session的函数来处理。Authentication的第一个参数是一个测试函数,用来检查是否接受输入的AUTH_USER和AUTH_PASSWORD。Session()用来初始化一个session对象并设置或读取它的属性值或者得到一个session。
Include(file_or_script)函数在当前脚本插入脚本或者文件的输出结果;例如它可用在页头或者页尾。
相关日志:
收藏:
QQ书签
del.icio.us
订阅:
Google
抓虾
