快速业务通道

Karrigell 入门

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-25
来创建一个简单的页面,用户可以在这个页面输入自己的名字.新建文件askname.py:

if QUERY.has_key ( "name" ):
   print "Your name is", _name + "."
else:
   print "What is your name?<br />"
   print "<form>"
   print "<input type=''text'' name=''name'' /><br />"
   print "<input type=''submit'' value=''Proceed'' />"
   print "</form>"

Karrigell services的编写和Python scripts类似.这个的作用是映射请求到用户指定的方法.指定方法的名字通过跟在Karrigell services后面进行传递.比如,下面这个url将会调用test这个方法

http://localhost/testarea/test.ks/test

让我们实际编写下这个例子

def index():
   print "Index function."
def test():
   print "Test function."

如果不传递方法名而使用这些Python scripts,你的程序会默认执行index方法.如果传递了方法名test,那test方法就会被调用.调用一个不存在的方法会抛出异常.
使用Karrigell services来处理表单传递的数据也很简单.让我们来创建一个ascname.ks

def index():
   print "What is your name?<br />"
   print "<form action=''nameSubmit''>"
   print "<input type=''text'' name=''name'' /><br />"
   print "<input type=''submit'' value=''Proceed'' />"
   print "</form>"
def nameSubmit ( name ):
   print "Your name is", name + "."

当然,允许外部公开访问你的方法是一件很危险的事情,为了阻止不允许的用户访问你的方法,按照下面所述给你的方法加前缀:

def _private():
   pass

尝试访问_private方法将会抛出异常.

使用HIP

在askname.py,有一件事情值得注意,这个代码镉刑?嗟膒rint语句.如果可以不使用print而直接输出,那将会是一件多么好的事情.幸运的是,Karrigell提供了这样的功能.这被称为HTML Inside Python,这将清除所有讨厌的print语句.并且从askname.py到TML Inside Python的转换也非常容易.我们只是需要移走那些print语句.删除askname.py里的print并将文件重命名为askname.hip

f QUERY.has_key ( "name" ):
   "Your name is", _name + "."
else:
   "What is your name?<br />"
   "<form method=''POST''>"
   "<input type=''text'' name=''name'' /><br />"
   "<input type=''submit'' value=''Proceed'' />"
   "</form>"

这就是HTML Inside Python.Karrigell将会检查你的文件并自动在需要的地方添加print.HTML Inside Python是Karrigell简单易学的一个有力证明.

Python Inside HTML

Karrigell提供了HTML


Inside Python,那自然的,也会提供Python Inside HTML.和一般的做法一样,将python语句写在特殊的标记里,然后把最终结果发送到用户的浏览器.让我们来创建一个简单的示例,random.pih

<% import random %>
Random number: <b><% print random.random() %></b>

正如你说看到的,Python Inside HTML的概念如此的简单.而其实,代码块可以更加的简单:

<%= random.random() %>

但是,如果处理更复杂的逻辑,比如处理表单数据?表单数据可以像在Python scripts中被处理那样被处理.这是有一个askname.py的复制品askname.pih

<% if QUERY.has_key ( "name" ): %>
   Your name is <%= _name %>.
<% end %>
<% else: %>
   What is your name?

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号