Differences between revisions 12 and 13
Revision 12 as of 2005-12-30 04:35:10
Size: 5699
Editor: ZoomQuiet
Comment:
Revision 13 as of 2009-12-25 07:19:11
Size: 5703
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
::-- ZoomQuiet [[[DateTime(2005-12-11T04:45:50Z)]]]
[[TableOfContents]]
::-- ZoomQuiet [<<DateTime(2005-12-11T04:45:50Z)>>]
<<TableOfContents>>
Line 12: Line 12:
 * [wiki:self/RocketyKarrigell Rockety 对KarriGell 的设置有很好的介绍]  * [[self:RocketyKarrigell|Rockety 对KarriGell 的设置有很好的介绍]]
Line 18: Line 18:
 http://localhost/obp/ 来访问了[[FootNote("当然没有在 obp 目录中安置index.htm/index.pih 之类的脚本是不会让你看的说……")]]  http://localhost/obp/ 来访问了<<FootNote("当然没有在 obp 目录中安置index.htm/index.pih 之类的脚本是不会让你看的说……")>>
Line 33: Line 33:
 * 小小看一下子示例,知道 [wiki:self/CheetahTemplateOrg Cheetah] 的基本使用是这样的:  * 小小看一下子示例,知道 [[self:CheetahTemplateOrg|Cheetah]] 的基本使用是这样的:
Line 45: Line 45:
 * `Ctrl+Alt+c`和`Ctrl+Alt+v` 是 ["Leo"] 中的复制和粘贴操作:  * `Ctrl+Alt+c`和`Ctrl+Alt+v` 是 [[Leo]] 中的复制和粘贴操作:
Line 48: Line 48:
     * `@nosent questionnaire.tmpl` 修改问卷模板,["Cheetah"]的      * `@nosent questionnaire.tmpl` 修改问卷模板,[[Cheetah]]的
Line 58: Line 58:
 attachment:snap-KwDay10.png  {{attachment:snap-KwDay10.png}}
Line 81: Line 81:
 attachment:snap-KwDay21.png  {{attachment:snap-KwDay21.png}}
Line 116: Line 116:
attachment:snap-KwDay22.png {{attachment:snap-KwDay22.png}}
Line 135: Line 135:
使用 [wiki:self/AllAboutSubversion SVN 下载]:
    [wiki:selfsvn/zqlib/tangle/zoomq/Karrigell/obpKWD/KwDay2/ KwDay2实例]
使用 [[self:AllAboutSubversion|SVN 下载]]:
    [[selfsvn:zqlib/tangle/zoomq/Karrigell/obpKWD/KwDay2/|KwDay2实例]]
Line 139: Line 139:
attachment:snap-KwDay2Leo.png {{attachment:snap-KwDay2Leo.png}}
Line 143: Line 143:
[[Include(/Discuss)]] <<Include(/Discuss)>>

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

1. K2日:直接完成功能!

不管37 21 直接完成心目中的功能先!

  • 计划是这样的,要可以直接读取原先的问卷设计 ini 文本,到页面的 TEXTAREA 中,然后可以提交并保存到指定目录中!

1.1. 规划

qpath = "q/" pubq = qpath+"easy051201.cfg" }}}

  • 使用这样的全局变量定义下来,使用 Leo 快速的将所有的文件控制起来

1.2. Cheetah

道听途说 各种模板系统中 Cheetah 非常的好和稳定,就用它了!

  • 小小看一下子示例,知道 Cheetah 的基本使用是这样的:

    1. 引入模板from Cheetah.Template import Template

    2. 加载模板page = open("你的模板文件.tmpl","r").read()

    3. 加载数据vPool = {'cfgtxt':随便什么字串的值就成}

    4. 渲染输出print Template(page, searchList=[vPool])

    5. 则模板中有$cfgtxt 的地方就会替换为实际数据

1.3. Leo 组织实现

可以在一个统一界面中把握全部章节/元素哪!

  • 可以使用中文作章节名目:
    • 问卷来组织设计文案

    • 就是@nosent easy051201.cfg

    • 当然要使用@path q 来配合,这样你对 easy051201.cfg 的修改可以立即输出为具体的文件

  • Ctrl+Alt+cCtrl+Alt+vLeo 中的复制和粘贴操作:

    • 快速从原先的 @nosent index.pih 复制整个节点为

    • @nosent  mana.pih 管理页面入口

    • @nosent  questionnaire.tmpl 修改问卷模板,Cheetah

1.3.1. 干净的处理脚本

MVC?尝试一下子

  • @nosent  mana.pih 是纯HTML页面了! 算表现?

  • <%Include("qdesign.py")%> 来包含一个纯操作脚本,算模式了

  • @nosent  questionnaire.tmpl 模板,算数据控制?

1.3.2. 八股文样

模式化的处理脚本

  • 从文学化编程角度看,web 应用的脚本,应该说都一个样儿!

    snap-KwDay10.png

  • 即:
    1. 脚本说明 @...@c 部分

    2. 脚本声明 << page declarations >> 引用部分

    3. 行为定义 @others 包含的所有下级节点

    4. 实际尝试 <<try>> 引用的部分

1.4. 编辑实现

其实就是将指定的文件内容读出来发布到页面的TEXTARE 中

  • 模板中先准备{{{<textarea NAME="cfgfile" rows="27" >

$cfgtxt </textarea>}}}

  • 处理脚本中

       1 #简化引用对象名
       2 from Cheetah.Template import Template as ctTpl
       3 vPool = {}
       4 vPool['cfgtxt'] = open(pubq,"r").read()
       5 page = open("questionnaire.tmpl","r").read()
       6 txp = ctTpl(page, searchList=[vPool])
       7 print txp
    
  • bingo! 完成!

    snap-KwDay21.png

1.5. 实现展现

就是将ini 的内容整理为HTML的页面展示

1.5.1. 关键代码

  • from dict4ini import DictIni 当然的要从 NewEdit 中扒出 dict4ini.py 安装到当前目录中

  • 创建def expage(dict): 问卷输出函式,来将ini 内容整理为相应的页面

       1 exp +="<ul>"
       2 # 将字串的字典键值依照数字方式排序
       3 k = [int(i) for i in dict.ask.keys()]
       4 k.sort() # 没有回传的数组重整处理
       5 for i in k:
       6     ask = dict.ask[str(i)]
       7     exp +="<li>%s"%ask["question"]
       8     exp +="<ul>"
       9     qk = [j for j in ask.keys()]
      10     qk.sort()
      11     for q in qk:
      12         if 1==len(q):
      13             exp +="<li>%s"%ask[q]
      14         else:
      15             pass    
      16     exp +="<p>正确答案::%s</p>"%ask["key"]
      17     exp +="</ul>"
      18     exp +="</li>"
      19 exp +="</ul>"
      20 return exp
    

    双重循环就可以对应的将类似[ask/1] 一节中的所有

    • 类似a = 赞! 的选择项按照列表的形式输出了!

snap-KwDay22.png

1.6. 串联页面

将编辑页面和展现页面串联起来

  • 当然的要使用 FORM:

{{{<FORM ENCTYPE="multipart/form-data"

  • ACTION="qpage.pih"

    METHOD=POST> }}} 在模板中声明一下子

  • 测试为先!!!在 qpage.py 中加入print QUERY 确认倒底传送了什么

  • OK! 一切吻合想象open(qpath+pubq,"w").write(QUERY["cfgfile"])

    • 将传送来的编辑成果先写回文件,再整理展现!

1.7. 明日目标

实现了最基本的编辑到保守,还有问卷展示的脚本那未自然的:

  • 实现可以真实使用的问卷表单哪!

1.8. 实例下载

使用 SVN 下载:

今日成果: snap-KwDay2Leo.png

1.9. 讨论


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

  1. "当然没有在 obp 目录中安置index.htm/index.pih 之类的脚本是不会让你看的说……" (1)

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