django之商品最近浏览记录实现
母亲节祝福语精选大全django之商品最近浏览记录实现
我们在浏览⽹页的时候经常会在购买商品的时候,发现有个最近浏览记录,显⽰你浏览过的商品,这些都是怎么做的?
其实主要⽤是cookie技术。
通常,每查看⼀个商品的详细信息,我们算作⼀次浏览记录。
假设下⾯为我们的商品详情页逻辑。
怎样改善睡眠
def detail(request,id):
'''
商品详情页
:param request:
:return:
'''
goods = (id=id)
goods.g_click += 1
goods.save()
# 获取新品推荐的商品
news_goods = GoodsInfo.objects.all().order_by('-id')[:2]
title = '天天⽣鲜-{}'.format(goods.g_title)
is_detail = 1
has_cart = 1
发展对象培训心得体会2000字
goods = goods
response = render(request,'fs_goods/detail.html',locals())
那么接下来我们就需要先从本地cookies获取该商品的浏览记录信息,如果有记录则直接获取,反之就把当前这个商品作为浏览记录保存到cookies中。
cookies = ('goods_cookies','')
紧接着做出判断,
if cookies == '':
# 说明是第⼀次浏览商品详情,本地还没有⽣成商品的cookie信息,那么直接将这个商品的id存到cookie。
cookies = id+';'      # '1;2;3;'
elif cookies != '':
# 说明不是第⼀次浏览商品详情,本地已经存在商品的cookie信息了;
# 从'1;2;3;'这个cookie字符串中,取出每⼀个商品的id
goods_id_list = cookies.split(';')    # ['1','2','3']
# 判断当前浏览的这个商品的id是否存在于这个goods_id列表中,存在说明商品之前浏览过,不存在说明之前没有浏览过。
巫师攻略
对于浏览记录,平时我们看到的⼤抵有两种。⼀是只考虑cookie是否存在,不考虑顺序问题。⼆是考虑cookie是否存在,同时考虑顺序问题,将最近点击的商品记录展⽰在最前⾯。
(1)、第⼀种⽅案,只考虑cookie是否存在,不考虑顺序问题
if id in goods_id_list:
return response
else:
女人女性goods_id_list.insert(0,id)
cookies = ';'.join(goods_id_list)
response.set_cookie('goods_cookies',cookies)
return response
(2)、第⼆种⽅案,考虑cookie是否存在,同时考虑顺序问题,将最近点击的商品记录展⽰在最前⾯。(假设我们最近浏览记录只展⽰5条)
if id in goods_id_list:
大乐透中奖方式# 说明当前这个商品记录已经存在了,将这个记录从cookie中删除    goods_ve(id)
goods_id_list.insert(0,id)
if len(goods_id_list) >= 6:
goods_id_list = goods_id_list[:5]
cookies = ';'.join(goods_id_list)
response.set_cookie('goods_cookies', cookies)
return response
最后将其从cookie中取出,将其展⽰到需要的地⽅。
# 从本地cookie读取商品的浏览记录
cookies = ('goods_cookies','')
goods_list = []
if cookies != '':
goods_id_list = cookies.split(';')
for goods_id in goods_id_list:
if goods_id:
good = (id=int(goods_id))
goods_list.append(good)
else:
continue
return render(request, 'fs_user/user_center_info.html', locals())

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。