::-- ZoomQuiet [2005-12-31 06:55:32]
我的体验环境:: {{{Python 2.4.1 (#65, Mar 30 2005, 09:13:57) [MSC v.1310 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. }}}+DjanGo SVN 1587
1. LiClass1:Hollo world!
- 果然有挫折!
安装 0.90 版本,没有木头所言 manage.py
追回一步一步学习(一) 一看才明白,要SVN Trunk版本的!呜乎哀哉!你怎么不说清楚哪!
{{{[F:\zDevelop\_Zoomq\Django\tryfirst]py manage.py runserver Validating models... 0 errors found.
Starting server on port 8000 with settings module 'tryfirst.settings'. Go to http://127.0.0.1:8000/ for Django. Quit the server with CONTROL-C (Unix) or CTRL-BREAK (Windows). }}}
- 哈哈哈!!有用!
- apps ???
使用 Leo 组织一下子,明确项目结构,开始!
为什么?!urls.py 中
# (r'^tryfirst/', include('tryfirst.apps.foo.urls.foo')), (r'^$', 'hollo.index'),
看着 example 再尝试
(r'^$', include('tryfirst.apps.hollo.index')),
KAO!!也不成?!难道是
(r'^$', 'tryfirst.apps.hollo.index'),
DONE! limodou!! 你为什么不说明白哪!!好歹也测试一下子哪!!!
1.1. 小节
初体验,感觉 Django 的调试信息比KarriGell 还要漂亮哪!! 写应用页面变成了一个应用插件的注册过程,嗯嗯,有些向官僚式的八股文写作了,好!是俺组织标准化KarriGell web 应用的一种示范!
2. LiClass2:加法器?
准备开始玩味 MTV (Model Template View) 按照说明一下子就成功了! 当然,没有使用 LiModou 说的那种 url 声明,追加的是: {{{(r'^add/$', 'tryfirst.apps.add.index'),
- }}}
2.1. 调试?!
POST 看起来是个内置对象,想法子输出看一下子!
当然的,在充当模板的text 部分要追加</form>debug::%s"""
- 唉呀呀??怎么没有输出!?
- 对了是HTML 页面,可能有问题,看源代码!果然有了...
2.2. 恶搞
哈哈哈!!这样调试可以的话,那未将输出部分修改一下子:
r 是什么呢?!r = DictIni(values=request.POST) 哈哈哈!使用 LiModou 的 dict4ini 模块!解析一下子dict 为对象,容易引用哪! 可用!是也乎^__^
2.3. URL 规则
没有详细说明下去的,url_conf,不知道是否有Apache mod_rewrite 的神奇? 比如说:http://localhost:8000/foo?action=edit&user=zoomq 可以通过:http://localhost:8000/foo/zoomq/edit 来访问得到?
3. LiClass3:MTV初步
触及 MTV (Model Template View)
- 设置 T 目录先!
顺手将国际化的设置查明了
TIME_ZONE = 'Asia/Shanghai PRC' LANGUAGE_CODE = 'zh-cn'
居然没有Bei Jing!! 唉呀呀...
刷! 立即就有了; 嗯嗯,从现在开始每个应用都要修改三个文件:
- apps 中行动脚本
- templates 中输出模板
- urls.py 访问入口声明
唉呀呀?这么一说...
(r'^list/$', 'tryfirst.apps.list.index'), (r'^li/$', 'tryfirst.apps.list.index'),
这样一来就可以方便的将相同的活动发布为不同的访问?!
4. LiClass4:csv输出
进一步的 View操作
获取 request <--> DjanGo <--> response 输出
唉呀呀!简直就是MoinMoin 的页面处置流程哪!
row.0|addslashes 管道定向技术哪!-)
- 神奇哪!! URL 策略发挥了作用!
- 不过,跟多个行为产生了关联有点混乱的说...
Context 对象是 DjanGo 内含特定的处理对象;
- Context 对象实例必须是字典
- Context 对象的字典关键字将用以在模板中进行引用的
response = HttpResponse(mimetype='text/csv') response['Content-Disposition'] = 'attachment;filename=%s.csv'filename
两句约定了下载时的文件名实际数据输出还是response.write(t.render(c))完成渲染
4.1. 小节
呜乎哀哉...理解,还是不管细节,成功就好? 现在开始是个分水岭了...
数据可以组织为字典,但对于每个对象,却仍然可以调用它的方法。比如 a 有一个 getname 的方法,可以在模板中这样 。因此django有一种调用的策略,非常灵活。 -- limodou