关于日志存档‘2009Y08M’ 的所有文章

Django的学习笔记,从零开始。
以后会慢慢更新。
1. Windows环境下Django的安装、配置
2. Hello, World!
3. URL映射简述
4. 模板基础
5. 模板继承
6. 数据库操作
7. 应用——学生管理
8. Generic View
Python作为一种动态语言,它的快速开发是Java等动态语言无法比拟的。
像Java,想写个Hello,World都得定义Class,main方法,而Python则简简单单一句话就搞定。
Django作为Python开发的框架,自然也会有快速开发的特点。
Generic View为我们的快速建站提供了支持,下面就简单的介绍一下。

在 Python Web编程(七)里面我们做了一个简单的单表的增删改查,我们写了很多的view方法,
但是呢,这都是不必须的,因为Django考虑到了,增删改查这种基本操作怎么还需要每个都写出方法呢,
这就有了Generic View。
下面就把Python Web编程(七)里面的东东改造成利用Generic View的。
我们要利用到以下几个Generic View
django.views.generic.list_detail.object_list
django.views.generic.list_detail.object_detail
django.views.generic.create_update.create_object
django.views.generic.create_update.update_object
django.views.generic.create_update.delete_object
具体的使用方法介绍请参照Django的文档。

为了利用这几个Generic View,我们修改下urls.py
urls.py

在这里,我们使用了Generic View,所以view.py里面的方法就可以删掉了,只需要保留update方法
view.py

还有一点需要注意,因为我们在urls.py里面都没有指定模板,Django会去猜应该用哪个模板。
默认的模板如下
object_list   <app_label>/<model_name>_list.html
object_detail <app_label>/<model_name>_detail.html
create_object <app_label>/<model_name>_form.html
update_object <app_label>/<model_name>_form.html

所以,根据需要你更改一下模板路径,再修改HTML的名字
students.html  -->  student_list.html
student.html   -->   student_form.html
因为之前我没有考虑只查看不修改的情况,而Generic View里面正好有对应的View(object_detail),
所以,我们还需要给它做一个只是查看用的模板 student_detail.html。(只是对student_form.html做了简单修改)
student_detail.html

object_list默认的返回对象是object_list,因此,我们需要修改student_list.html
{% for student in students %}
--->
{% for student in object_list %}

object_detail、create_object、update_object默认使用的对象是object,
因此,我们需要修改student_detail.html和student_form.html
student_detail.html

student_form.html

最后,由于urls.py变了,我们还需要修改下student_list.html中的JS。
old
--->
new

对Student的增删改查修改完工。
试一下吧。
http://127.0.0.1:8000/students/
http://127.0.0.1:8000/students/creat/
http://127.0.0.1:8000/students/update/1/
http://127.0.0.1:8000/students/1/

下回预告:
到现在为止,还只是单表操作,这在实际运用中是不可能如此简单的,那么,多表联合的情况如何呢???



在很久以前,我就关注Django,但是一直都太忙了,没有时间总结过,今天就把收集的一些Django资源总结下。
1. www.djangoproject.com
官方网站。Django的文档绝对是一流的,更新及时,简单易懂。
而且附带很多例子,比如
http://www.djangoproject.com/weblog/
http://code.djangoproject.com/wiki/DjangoResources
可以学到很多东西的。
2. www.javaeye.com/wiki/Django-book
Javaeye的Django小组翻译的文档,很好,不过版本有点儿老。
3. http://www.woodpecker.org.cn/obp/django/django-stepbystep/newtest/doc/
这个教程比较全,不过,版本也较老,Django从1.0开始的变化较大,有很多都不适用了。
4. http://code.google.com/p/pylogs/
一个单人的博客系统。作者很勤劳,内容很好,版本更新很及时,很好。
5. http://django-cms.org/
据说是瑞士的,但是我看网址应该是德国的,很不错的东西。
6. http://wiki.woodpecker.org.cn/moin/DjanGo
啄木鸟社区的介绍,里面集中了一些Django的资源。
7. http://pinaxproject.com/
看介绍:a platform for rapidly developing websites
就知道很不错了,程序员必看。
8. http://www.douban.com/group/19381/
豆瓣的Django小组。
9. Google Code
Google Code上有很多Django的App,像
django-pagination,django-timezones,django-mailer
就不一一列举了。