status

正式

ZoomQuiet

完成度:98%

KDay 0: Web开发启航

定场诗

前有樱桃,后涡轮;还是推车最贴心.
(CherryPy TurboGears KarriGell)
最贴心,不省心, 一切都要想清楚.
想清楚,就清楚, 一切清楚才清爽!
要清爽,常重构! 没有最爽只有更爽是也乎!
  • 以上,是小白通过了 CDays 的历练后,从某位行者那儿瞧到的; 拿来作这篇实例故事的开场白--实在是因为,在Python的帮助下,完成了大部分功能之后,小白真切的感应到了其中传达出的那种感慨.

缘起

  • 小白在工作/学习之余,努力想将Pythonic的体验分享给同事/同学们,所以一有机会就想使用Python 来完成,这不接到了个比较正式的小任务:
  • 改建一个简单的在线问卷 -- 参考现有使用的一个简单的在线问卷
  • 小白看了一下源代码,感觉非常简单,就自发的将任务转变成:
    • 开发一个简单的在线问卷管理系统 -- 暂定名为 "EasyPaper" -- 可以方便的创建简单的问卷页面出来!

  • 小白根据社区分享的精神,主动的将这次基于 Karrigell 的Web应用开发过程记录成了实例故事; 以连载的方式反馈给了社区;
  • 不过,小白自知不是什么写书能手,只是想分享Python 开发的快捷体验,没有经验和自信能和尚没有任何Pythonic 体验的初学者产生共鸣,所以,小白设定了故事准入条件--想看接下来的实例故事的人,至少需要满足以下条件:
    1. 了解互联网
    2. 了解HTML
    3. 了解CSS
    4. 了解DHTML
    5. 了解动态页面的含义
    6. 了解PHP或是ASP的开发思路
    7. 了解Python
    8. 了解CherryPy

  • 所谓了解,就是对以上方面技术:明了相关基础知识,看过/写过相关代码,知道具体是什么性质和范畴的领域知识;
  • 否则,读者一定会第一时间感到困惑,进而倍受锉败的 (~_~)

  • 另外,本故事面向那些控制欲强的人--对于任何系统,如果不是所有代码都是自个儿写的,会感觉非常不靠谱,不敢使用的那种人,可能会比较喜欢这篇故事;
  • 否则,对所谓"成熟框架类"体系非常崇尚的,期望在大量优雅的自动生成的框架代码帮助下快速完成开发的人,看过来一定会感觉这样开发太...丑... (=.=)

详细: 
PCS300 CherryPy
分享了 樱桃蟒 这一最早出现的关注OOP(面向对象编程)体验的应用框架,基础使用体验;

详细: 
PCS401 DHTML
分享了 动态HTML 这一常用网络应用技术的知识点;
连带涉及PHP/ASP等 动态网页 技术;

故事

角色

小白
  • 已经不是"小白"的小白,以第三人称的方式,记述自个儿在实例开发活动中的各种体验
行者
  • 啄木鸟/CPyUG/ZEUUX 等等中国活跃技术社区的那群热心的Python 用户,在Python 应用/学习方面是先行者,但都不是专业教师,所以,说话可能有些颠三倒四,但都是真心的好人们

约定

  1. 每节故事都提供可运行的 Karrigell 实例站点脚本,以便通过实际运行,得到直观的体验
    • 注意: 
      所有实例代码使用SVN提供下载,访问URL:
      http://openbookproject.googlecode.com/svn/trunk/LovelyPython/KDays/
      精巧地址:http://bit.ly/2aAaUy
      SVN ~ 是 Subversion 的简称,是种非常流行和稳健康的版本管理系统;
      简单的讲,就是一个中央服务器及配套工具集;可以方便的管理所有开发时的各种文件;
      神奇的是,可以帮助你安全的取回任何时间点上的文件/目录 -- 即使文件/目录曾经被删除过;
      进一步介绍在:
      http://wiki.woodpecker.org.cn/moin/SubVerSion
      精巧地址:http://bit.ly/b7w9K
      
  2. 实例故事,不是教程,小白只会讲述要点,具体的都含在脚本代码中了,读者只要下载运行,尝试按照自个儿理解的修订一下,看一看运行的反应,立即可以深入到系统的各个层面,理解到最细微之处;
  3. 实例脚本全部使用 Leo 组织!小白也推荐读者可以尝试通过 Leo 来观察代码,这样可以感受到小白组织代码时的思路,以及轻松的掌握代码的整体框架;

    • 详细: 
      PCS302 Leo文学化编程环境框架
      Leo是种极具个性的文学化编辑环境,
      使用独特的方式来组织我们的软件工程,
      在PCS302 分享了初步体验...
      
  4. 每日故事涉及的开发,基本上都是在 3.1415 小时之内就可以完成的 ;)

  5. 每日故事最后的独立章节~小结,是小白养成的好习惯:"及时清点成果或是问题,同时给明日的开发定出可行的目标;"
  6. 每日故事最后的额外章节~练习,是小白根据故事涉及的知识点/领域技术设计的一些问题,特此列出,是期望读者独立进行尝试,加强相关体验.

目标

小白最终的开发目标,就是令"EasyPaper"工具能作到:

  • 可以通过有格式约定的纯文本生成问卷
    • 可以批量生成问卷
  • 生成的问卷可以立即受理登录和回答
  • 问卷的回答可以得到实时的成绩统计
  • 可以随时修订格式约定的纯文本,从而变更已经发布的问卷

实例问卷定义文本样例

#easy051201.cfg
[desc]
pname           = 啄木鸟问卷 之 “基本知晓”
desc            = 自学问卷v0.7
learn   = <a href='http://wiki.woodpecker.org.cn/moin/CPUG'>CPyUG首页</a>
# 问卷状态: 0 设计中|1 发布中|2 发布过
done            = 0

[ask/1]
question= 啄木鸟社区首页在哪里?
a               = woodpecker.org.cn
b               = python.cn
c               = 不知道……
key             = a # 正确答案
[ask/2]
...
  • 文本支持注释,约定凡是 # 开头的行,忽略,不用作问卷生成

练习

尝试运行 Karrigell (下载地址:http://sourceforge.net/projects/karrigell

  • 精巧地址: http://bit.ly/1i7NyI).

  • 下载Karrigell解压
  • 在终端中进入Karrigell所在目录
  • 运行 python Karrigell.py, 看看出现什么?

  • 再在浏览器中输入localhost, 再看看出现什么?

如果出现意外,尝试根据屏幕提示进行排除...


返回 KDays实例故事


::-- ZoomQuiet [2005-12-10 11:49:22]

Name Password4deL ;) :( X-( B-)