::-- ZoomQuiet [2005-12-11 04:45:50]

1. K4日:KS

snap-KwDay40-3Leo.png

不爽直!使用新的KS 页面组织
现在想来,你实现了三个小功能就用了7,8个文件……有些想念 CherryPy 的对象式网站发布了!

1.1. lovely session

学习一下子文档吧!

1.2. HTMLTags

函式化的HTML生成

snap-KwDay40.png

  1. << page declarations >> 同样是引用声明什么的

  2. << htmlcode >> 就是利用Leo来快速复用的各种 HTML 代码

  3. <<ini>> 初始化部分,就是各响应页面都要使用的变量准备

  4. @others 包含以下各种 def action(): 样定义的实际响应页面和def _function(): 可以反复调用的不作为页面响应的普通函式声明

1.3. 登录

从默许的index 自动导向 login 那

   1 p = Karrigell_QuickForm('fm_login'
   2                         ,'POST'
   3                         ,'chkusr'
   4                         ,"登录自学问卷")
   5 p.addHtmNode('text','uname'
   6              ,"staff帐号"
   7              ,{'size':40,'maxlength':8})
   8 p.addGroup(["submit","btn_submit","提交","btn"]
   9            ,["reset","btn_reset","重写","btn"])
  10 p.addRule('uname','required'
  11           ,"成员名是必须的!Login name is required!")
  12 p.display()

非常简洁,标准

snap-KwDay4sess.png

1.4. 多问卷选择

有了登录后的用户信息,就可以根据不同的角色进行处理了

1.4.1. fnmatch

1.4.2. 列表所有问卷

根据问卷的状态进行归类列表

   1 # 识别问卷发布情况::
   2 qdone = {}
   3 qdoing = {}
   4 qdesign = {}
   5 for p in qcfglist:
   6     cfgp = DictIni(conf.qpage.qpath+p)
   7     if 0==cfgp.desc.done:
   8        qdesign[p]=cfgp
   9     elif 1==cfgp.desc.done:
  10        qdoing[p]=cfgp
  11     elif 2==cfgp.desc.done:
  12        qdone[p]=cfgp
  13     else:
  14         qdesign[p]=cfgp

使用不同的字典容器先过滤一下子搜索出来的文件;

   1 print H4("问卷进行中::")
   2 print UL("".join([str(LI(
   3              B(A(qdoing[i].desc.pname
   4                  ,href="page?qpname=%s&do=doing"%i.split(".")[-2])
   5                  )+
   6                  SUP(qdoing[i].desc.learn)+
   7                  SUB(A("问答统计",href="stat?qp=%s"%i))
   8                          )
   9                         ) for i in qdoing.keys()
  10                     ])
  11                     )

snap-KwDay4list.png

1.5. 小节

1.5.1. 明日任务

心情舒畅!快速的完成了更加简练的功能页面!

1.6. 实例下载

使用 SVN 下载:

1.7. 讨论


返回 KarrigellWebDev -- 快速体验K开发

KwDay4 (last edited 2009-12-25 07:19:11 by localhost)