千与千寻django(六)---通用视图(Generic views)
来源:互联网 发布:战舰世界 本森数据 编辑:程序博客网 时间:2024/04/29 17:36
通用视图的作用
视图提供了容易的接口来处理开发人员遇到的最常见的任务
所有的这些视图被用来在你的URL配置文件里创建配置字典并把这些字典作为参数传递给一个给定的模式 我们只需要使用这些内置的通用视图函数,而无需自己编写就可以实现相应的功能。
通用视图的一个例子
在urls.py中我们直接使用通用视图
from django.conf.urls.defaults import patterns, include, urlfrom mysite.views import *from django.contrib import adminfrom mysite.book.models import Bookfrom django.views.generic import ListViewadmin.autodiscover()urlpatterns = patterns('', (r'^helloword/$',helloword), (r'^templates/$',templates), (r'^admin/', include(admin.site.urls)), (r'^book/list/$', ListView.as_view( model=Book, context_object_name='book_list', template_name='/book/book_list.html' )), )这些代码的意思是使用Book模型(之前有创建这个模型)传过去为book_list然后路径为/book/book_list.html
好了我们写下book_list.html的代码吧如下:
<html> <head> <title>book_list</title> <body> <h1>books</h1> {%for book in book_list%} {{book.title}} {%endfor%} </body> </head></html>遍历模型然后打印出book的title
好了我们开始运行看看结果
恩,出来book的tiltle了,因为我就一条数据,所以就只有一个‘你好’,到此通用视图的一个小例子就举好了,当然通用视图还有好多其他的直接供我们使用
eg2:我们还可以以另外一方式写出以object_list为例:
<html> <head> <title>book_list</title> <body> <h1>b</h1> {%for book in a_list%} {{book.first_name}} {%endfor%} </body> </head></html>
from django.conf.urls.defaults import patterns, include, urlfrom mysite.views import *from django.contrib import adminfrom mysite.book.models import Book, Authorfrom django.views.generic import ListView, list_detailadmin.autodiscover()author_list_info = {'queryset' : Author.objects.all(),'template_object_name':'a',}urlpatterns = patterns('', (r'^helloword/$',helloword), (r'^templates/$',templates), (r'^admin/', include(admin.site.urls)), (r'^book/list/$', ListView.as_view( model=Book, context_object_name='book_list', template_name='/book/book_list.html' )),(r'authors/$', list_detail.object_list, author_list_info) )
其中queryset为必须参数,其他参数可以任选,所以我选了一个template_object_name,其他的参数包括
我们就可以使用它的context有:
注:如果不传递template_object_name他会自动匹配其源码如下:
其他的通用视图
django.views.generic.list_detail模块object_list 显示模型对象列表
object_detail 显示单个模型对象
django.views.generic.create_update模块
create_object 创建模型对象
update_object 修改模型对象
delete_object 删除模型对象
django.views.generic.simple模块
direct_to_template 直接使用指定的模板渲染给定的context对象
redirect_to 重定向到指定的url
django.views.generic.date_based模块
这个模块主要处理“按时间查看存档”的功能,来源于新闻出版行业。具体包括:
archive_index 最顶级的归档,列出所有年份及指定数量的最新对象
archive_year 按年归档,列出所有拥有对象的月份
archive_month 按月归档,列出本月的所有对象,找到拥有对象的上一个、下一个月份
archive_week 按周归档,列出本周的所有对象
archive_day 按日归档,列出当天的所有对象,找到拥有对象的上一个、下一个日期
archive_today 当前日期(今天)的按日归档
object_detail 显示按照年/月/日/序号找到的对象
这些通用视图函数不再一一介绍,可以参考Django API文档
- 千与千寻django(六)---通用视图(Generic views)
- django使用通用视图 django.views.generic
- django的通用视图 (generic views)
- 基于类的通用视图(Class-based generic views)
- Django学习笔记之:【通用视图 (generic views) 】
- 用基于类的通用视图处理表单(Class-based generic views)
- 千与千寻django(一)---安装
- Django学习8:视图(views)
- Django笔记-generic views
- Django笔记-generic views
- django - generic views
- Django-restframework12 Generic views
- 读书笔记:Django 模板开发(二)Views, URLs, and Generic Views
- Django框架全面讲解 -- Django Views(视图函数)
- 千与千寻django(七)---表单(form)
- 千与千寻django(三)---django的模板系统
- 千与千寻django(五)---django的自带管理界面
- Django框架MTV架构之 Views(视图)
- 20 你应该知道的PHP库
- ucOS学习--重点知识
- 经典正则表达式
- Session和数据保持:
- reinterpret_cast
- 千与千寻django(六)---通用视图(Generic views)
- 多文件程序输出数组的最大值
- 基于URL特征的网站结构信息挖掘
- 使用Vitamio打造自己的Android万能播放器(9)—— 在线播放 (在线电视)
- 安卓巴士自测试题——第十期
- S5PV210裸板驱动
- 视频压缩原理之 预测编码
- HDU 1874 畅通工程续
- eclipse编码的设置