当前位置: 首页 > 工具软件 > karrigell > 使用案例 >

Karrigell 入门简介[3]

姚嘉容
2023-12-01

使用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?<br />
   <form method='POST'>
   <input type='text' name='name' /><br />
   <input type='submit' value='Proceed' />
   </form>
<% end %>

请注意<% end %>的使用.这将标识代码块的结尾,就像上面我们的条件语句的缩进一样.另一个可选择的办法是使用indent标签,这个也被用来标识代码缩进.

<indent>
<% if 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>
</indent>

更多的特性

我们来这样试一下,标签可以通过Python scripts这样使用,tagtest.py

rom HTMLTags import *

print CENTER ( B ( "Test." ) )

session同样可以在Karrigell被处理,并且Karrigell还提供了一个良好的接近于面向对象的session机制.让我们创建一段简单的代码来示范Karrigell中的session.回到我们的第一个例子,用户将会获得一个幸运数字.如果用户刷新页面,该数字仍然存在,因为这个数字将被保存在sessin中.当然,用户将可以选择重新获取新的幸运数字,这通过关闭sessin来完成.创立一个名为luckynumber.ks的Karrigell services,输入下面的代码:

import random

user = Session()

def index():
   if not "luckyNumber" in dir ( user ):
      user.luckyNumber = random.randint ( 0, 20 )
   print "Your lucky number:", user.luckyNumber
   print "<br /><br />"
   print "<a href='reset'>Reset Lucky Number</a>"
def reset():
   user.close()
   print "Your lucky number has been reset."
   print "<br /><br />"
   print "<a href='index'>Back</a>"

结论

Karrigell提供了四种方法来进行web开放,Python scripts,Karrigell services,HTML Inside Python和Python Inside HTML,每种方法都有其特点,但是他们却都有一个共同的优点:使用简单.Karrigell 将web开发变成了一件优雅,简单的事情.无论是单独使用Karrigell还是和apache结合使用,都是令人吃惊的简单.因为,无论是对于初学者,还是老手,Karrigell都是不错的选择.

 类似资料: