Django笔记7(通用视图)
1. 一个呈现静态“关于”页面的URLconf
from django.conf.urls.defaults import *
from django.views.generic.simple import direct_to_template
urlpatterns = patterns('',
('^about/$', direct_to_template, {
'template': 'about.html'
})
)
注意:页面有中文,模板文件请使用UTF-8编码
2. 在我们自己的视图中重用它
from django.conf.urls.defaults import
from django.views.generic.simple import direct_to_template
from mysite.views import *
urlpatterns = patterns('',
('^about/$', direct_to_template, {
'template': 'about.html'
}),
('^about/(\w+)/$', about_pages),
)
from django.http import Http404
from django.template import TemplateDoesNotExist
from django.views.generic.simple import direct_to_template
def about_pages(request, page):
try:
return direct_to_template(request, template="about/%s.html" % page)
except TemplateDoesNotExist:
raise Http404()
3. 对象的通用视图
from django.views.generic import list_detail
from mysite.books.models import *
publisher_info = {
"queryset" : Publisher.objects.all(),
"template_object_name" : "publisher",
"template_name" : "books/publisher_list.html",
"extra_context" : {"book_list" : Book.objects.all()}
}
urlpatterns = patterns('',
(r'^publishers/$', list_detail.object_list, publisher_info)
)
{% extends "base.html" %}
{% block content %}
Publishers
{% for publisher in publisher_list %}
{{ publisher.name }} {% endfor %}
{% endblock %}
注意publisher_info各参数的默认值,template_object_name默认为object_list,template_name默认为books/publisher_list.html,注意结果的缓存问题
4. 显示某个出版商的所有书籍
urlpatterns = patterns('',
(r'^publishers/$', list_detail.object_list, publisher_info),
(r'^books/(\w+)/$', books_by_publisher),
)
from django.views.generic import list_detail
from mysite.books.models import *
def books_by_publisher(request, name):
# Look up the publisher (and raise a 404 if it can't be found).
try:
publisher = Publisher.objects.get(name__iexact=name)
except Publisher.DoesNotExist:
raise Http404
# Use the object_list view for the heavy lifting.
return list_detail.object_list(
request,
queryset = Book.objects.filter(publisher=publisher),
template_name = "books/books_by_publisher.html",
template_object_name = "books",
extra_context = {"publisher" : publisher}
)
{% extends "base.html" %}
{% block content %}
{{publisher.name}} Book List
{% for book in books_list %}
{{ book.title }} {% endfor %}
{% endblock %}
Django笔记7(通用视图)相关推荐
- django.views.generic通用视图的CreateView, ListView, UpdateView, DetailView, DeleteView用法
导入: from django.views.generic import CreateView, ListView, UpdateView, DetailView, DeleteView 入坑指南 用 ...
- 深入Django(1): 通用视图 (generic views)
如果对Django的基础部分尚不熟悉,请参考<Django实战>系列. 内容提要 1. 回顾Django的视图函数(view function) 2. 在视图函数中使用模板 3. 简化视图 ...
- django 1.8 官方文档翻译: 3-4-2 基于类的内建通用视图
基于类的内建通用视图 编写Web应用可能是单调的,因为你需要不断的重复某一种模式. Django尝试从model和 template层移除一些单调的情况,但是Web开发者依然会在view(视图)层经历 ...
- Python Django CBV下的通用视图函数
ListView TemplateView DetailView 之前的代码实例基本上都是基于FBV的模式来撰写的,好处么,当然就是简单粗暴..正如: def index(request):retur ...
- django通用视图(CBV)
1. 介绍 Django提供了很多通用的基于类的视图(Class Based View),来帮我们简化视图的编写.这些View与上述操作的对应关系如下: 展示对象列表(比如所有用户,所有文章)- Li ...
- Django 学习小组:基于类的通用视图详解(一)
通过三周的时间我们开发了一个简单的个人 Blog,教程地址: 第一周:Django 学习小组:博客开发实战第一周教程 -- 编写博客的 Model 和首页面 第二周:Django 学习小组:博客开发实 ...
- Django 基于类的通用视图详解
原文出处:https://segmentfault.com/a/1190000005685454 Django 学习小组:基于类的通用视图详解(一) 通过三周的时间我们开发了一个简单的个人 Blog, ...
- django通用视图(视图类)的login登陆、权限限定
django的登陆限定和权限限定是view设计中很重要的一个组成.网上的教程大部分都是通过使用view函数的装饰器来实现,比如: @login_required(login_url='/') @per ...
- Django 实现HTML转PDF 用通用视图编写PDF 并且让PDF支持中文
Django 实现HTML转PDF 用通用视图编写PDF 并且让PDF支持中文 如何使用django-easy-pdf django-easy-pdf的依赖 安装django-easy-pdf 使用过 ...
最新文章
- 当析构函数遇到多线程──C++ 中线程安全的对象回调
- python是不是特别垃圾-谈谈python垃圾回收机制
- linux以太坊开发环境搭建
- smtplib python教程_python使用smtplib模块发送邮件
- Android官方技术文档翻译——ApplicationId 与 PackageName
- 并发容器(J.U.C)中的集合类
- 修改了xml要不要重新起服务器,关于设置:Eclipse每次运行项目时都会修改server.xml(运行-在服务器上运行)...
- 数据库爬坑MySQL
- 设置最小值_WELSIM中设置有限元计算结果的最大最小值
- django 安装/部署过程
- Linux 多线程压缩/解压缩
- MSN网页上点击连接
- 计算机二级vb上机操作题库,全国计算机二级VB上机题库(题+答案)word版
- Java输入小数和整数求COSx_嗖嗖移动大厅 源代码 Java初级小项目
- jeecms9自定义标签以及使用新创建的数据库表
- 如何看待社会的阴暗面
- python 7-1 输出星期名缩写 (10分)
- Handing time
- C语言程序设计-鸡兔同笼问题
- php WEB报表工具的设计
热门文章
- 纯CSS3实现动态火车行驶特效
- C#根据屏幕尺寸大小重新定位控件大小和位置
- [PBRT-V3]从MCMC的角度分析MLT
- 如何将网页实现变灰效果?
- 堆排序——top k问题
- 大数据分析需注意什么问题
- express学习 - (3)express 路由
- 边信息(即对应的两个数组值)_Python 数据分析 NumPy 模块迭代数组nditer方法详解...
- python爬取天气数据的header_[python爬虫]爬取天气网全国所有县市的天气数据
- php 慢日志,php-fpm慢执行日志