django中通用视图优点,基本用法以及获取url参数的方法

经常碰到这种情况,需要调用某个模板,但可能存在不同的逻辑条件。如果为每个不同的逻辑条件都写个视图,则每个视图里都要单独指定模板文件并进行渲染,造成代码冗余。

因此可以引入通用视图,ListViewDetailView,这两个视图分别抽象“显示一个对象列表”和“显示一个特定类型对象的详细信息页面”这两种概念。

使用通用视图优点:实现视图中最基本的模板调用和渲染功能,并可以加入通用的逻辑条件。在遇到需要使用其他逻辑条件的情况,可以新建一个类并继承该通用视图,在新类里重写逻辑条件,而无需再次指定和渲染模板,减少代码冗余。

ListView

ListView用来获取指定的数据列表

下面建立了一个通用视图BookListView,用来显示已上架的图书列表,请注意:

  1. urls.py中调用的是as_view()方法
  2. 默认模板为<app name>/<model name>_list.html,使用template_name来指定模板文件
  3. 查询获得的数据,传递给模板时所使用的变量名默认格式是<model name>_list,使用context_object_name可以指定变量名
# books/views.py
from django.views.generic import ListView
from .models import Book

class BookListView(ListView):
    # 指定模型
    model = Book
    # 指定模板
    template_name = 'books/book_list.html'
    # 从模型中查询获得的数据,传递给模板时所使用的变量名
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值