status |
正式 |
完成度:98% |
KDay 0: Web开发启航
定场诗
前有樱桃,后涡轮;还是推车最贴心. (CherryPy TurboGears KarriGell) 最贴心,不省心, 一切都要想清楚. 想清楚,就清楚, 一切清楚才清爽! 要清爽,常重构! 没有最爽只有更爽是也乎!
- 以上,是小白通过了 CDays 的历练后,从某位行者那儿瞧到的; 拿来作这篇实例故事的开场白--实在是因为,在Python的帮助下,完成了大部分功能之后,小白真切的感应到了其中传达出的那种感慨.
缘起
- 小白在工作/学习之余,努力想将Pythonic的体验分享给同事/同学们,所以一有机会就想使用Python 来完成,这不接到了个比较正式的小任务:
- 改建一个简单的在线问卷 -- 参考现有使用的一个简单的在线问卷
- 小白看了一下源代码,感觉非常简单,就自发的将任务转变成:
开发一个简单的在线问卷管理系统 -- 暂定名为 "EasyPaper" -- 可以方便的创建简单的问卷页面出来!
- 小白根据社区分享的精神,主动的将这次基于 Karrigell 的Web应用开发过程记录成了实例故事; 以连载的方式反馈给了社区;
- 不过,小白自知不是什么写书能手,只是想分享Python 开发的快捷体验,没有经验和自信能和尚没有任何Pythonic 体验的初学者产生共鸣,所以,小白设定了故事准入条件--想看接下来的实例故事的人,至少需要满足以下条件:
- 了解互联网
- 了解HTML
- 了解CSS
- 了解DHTML
- 了解动态页面的含义
- 了解PHP或是ASP的开发思路
- 了解Python
了解CherryPy
- 所谓了解,就是对以上方面技术:明了相关基础知识,看过/写过相关代码,知道具体是什么性质和范畴的领域知识;
否则,读者一定会第一时间感到困惑,进而倍受锉败的 (~_~)
- 另外,本故事面向那些控制欲强的人--对于任何系统,如果不是所有代码都是自个儿写的,会感觉非常不靠谱,不敢使用的那种人,可能会比较喜欢这篇故事;
否则,对所谓"成熟框架类"体系非常崇尚的,期望在大量优雅的自动生成的框架代码帮助下快速完成开发的人,看过来一定会感觉这样开发太...丑... (=.=)
详细: PCS300 CherryPy 分享了 樱桃蟒 这一最早出现的关注OOP(面向对象编程)体验的应用框架,基础使用体验;
详细: PCS401 DHTML 分享了 动态HTML 这一常用网络应用技术的知识点; 连带涉及PHP/ASP等 动态网页 技术;
故事
角色
- 小白
- 已经不是"小白"的小白,以第三人称的方式,记述自个儿在实例开发活动中的各种体验
- 行者
- 啄木鸟/CPyUG/ZEUUX 等等中国活跃技术社区的那群热心的Python 用户,在Python 应用/学习方面是先行者,但都不是专业教师,所以,说话可能有些颠三倒四,但都是真心的好人们
约定
- 每节故事都提供可运行的 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
- 实例故事,不是教程,小白只会讲述要点,具体的都含在脚本代码中了,读者只要下载运行,尝试按照自个儿理解的修订一下,看一看运行的反应,立即可以深入到系统的各个层面,理解到最细微之处;
实例脚本全部使用 Leo 组织!小白也推荐读者可以尝试通过 Leo 来观察代码,这样可以感受到小白组织代码时的思路,以及轻松的掌握代码的整体框架;
详细: PCS302 Leo文学化编程环境框架 Leo是种极具个性的文学化编辑环境, 使用独特的方式来组织我们的软件工程, 在PCS302 分享了初步体验...
每日故事涉及的开发,基本上都是在 3.1415 小时之内就可以完成的
- 每日故事最后的独立章节~小结,是小白养成的好习惯:"及时清点成果或是问题,同时给明日的开发定出可行的目标;"
- 每日故事最后的额外章节~练习,是小白根据故事涉及的知识点/领域技术设计的一些问题,特此列出,是期望读者独立进行尝试,加强相关体验.
目标
小白最终的开发目标,就是令"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]