博主信息
博文 75
粉丝 0
评论 0
访问量 68625
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
小猿圈之Django 浏览页面点击计数(通用视图)
聆听的博客
原创
799人浏览过

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浏览页面的点击数了吗?感觉有疑问的,多看两遍,相信大家会掌握的;感兴趣的,可以去小猿圈学习更多东西, 学习在于每天进步一点点。

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学