博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小猿圈之Django 浏览页面点击计数(通用视图)
阅读量:6428 次
发布时间:2019-06-23

本文共 1551 字,大约阅读时间需要 5 分钟。

python越来越火,很多朋友从事web方向,Django框架是从事最多的框架,今天为大家详解一下Django浏览页面点击数,有兴趣的朋友可以学习一下,不管做什么网站,这个知识点是肯定会用到的。

通常情况下在Views.py中直接写一个视图函数就可以了,由于每次点出详情时都会经视图函数处理,

所以可以在此视图函数中对浏览次数进行“+1” 操作。

对应的url:url(r'^(?P<pk>[0-9]+)/$', views.get_detail, name='detail'),

def get_detail(request, pk=''):

# 根据文章的id 对每一次点击累加    context = Text.objects.get(id=pk)    browses = context.browse    browses += 1    context.browse = browses    context.save()    return render(request, 'news/detail.html',{
'context':context})复制代码

但这次跟着Django 官方文档走的,用的:generic.DetailView子类:

然后知道它有这些方法:

1.dispatch()2.http_method_not_allowed()3.get_template_names()4.get_slug_field()5.get_queryset()6.get_object()7.get_context_object_name()8.get_context_data()9.get()10.render_to_response()复制代码

最后试了下get,写了下面这个:

对应的url:url(r'^(?P<pk>[0-9]+)/$', views.DetailView.as_view(), name='detail'),

class DetailView(generic.DetailView):    model = Text    template_name = 'news/detail.html'    context_object_name = 'blog'    def get_queryset(self):        return Text.objects.filter(pub_date__lte=timezone.now())    def get(self, request, *args, **kwargs):        # 根据文章的id 对每一次点击累加        blog = Text.objects.get(id=kwargs['pk'])        browses = blog.browse        browses += 1        blog.browse = browses        blog.save()        return render(request, 'news/detail.html', {
'blog': blog})复制代码

事实上关键就在得到具体的对象,所以这个地方需要"id",所以需要得到从url中捕获的“pk”,

但是这个值在**kwargs中,可以通过kwargs['pk']得到它。

到这里就结束了,大家学会Django浏览页面的点击数了吗?感觉有疑问的,多看两遍,相信大家会掌握的;感兴趣的,可以去更多东西, 学习在于每天进步一点点。

转载于:https://juejin.im/post/5d0b2e176fb9a07f065573c0

你可能感兴趣的文章
DB2联邦重点
查看>>
学会休息 学会工作 学会学习
查看>>
whoami命令使用方法
查看>>
android SQL 理解
查看>>
杂七杂八荟萃
查看>>
项目中使用mybatis,日志不输出问题
查看>>
Linux Tar Split压缩解压缩分片压缩解压缩
查看>>
Quartz2D
查看>>
jQuery温度计,支持摄氏度华氏度同时展示
查看>>
Cloudstack+Glusterfs+Kvm 集群(笔记)
查看>>
Dubbo与Zookeeper、SpringMVC整合和使用
查看>>
Python中set 和dict 的总结
查看>>
mysql 相关
查看>>
超人学院Hadoop大数据资源分享
查看>>
pip安装更新
查看>>
中国人与欧洲人的想法
查看>>
android客户端Pad客户端开发,屏幕分辨率的不同究竟会怎么影响界面显示效果
查看>>
修复mysql表
查看>>
局域网
查看>>
2014诺贝尔物理学奖:蓝光LED
查看>>