Django中--使用redis存储历史浏览记录
生活随笔
收集整理的這篇文章主要介紹了
Django中--使用redis存储历史浏览记录
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
class UserInfoView(LoginRequiredMixin, View):'''用戶中心-信息頁'''def get(self, request):'''顯示'''# Django會給request對象添加一個屬性request.user# 如果用戶未登錄->user是AnonymousUser類的一個實例對象# 如果用戶登錄->user是User類的一個實例對象# request.user.is_authenticated()# 獲取用戶的個人信息user = request.useraddress = Address.objects.get_default_address(user)# 獲取用戶的歷史瀏覽記錄# from redis import StrictRedis# sr = StrictRedis(host='172.16.179.130', port='6379', db=9)con = get_redis_connection('default')history_key = 'history_%d'%user.id# 獲取用戶最新瀏覽的5個商品的idsku_ids = con.lrange(history_key, 0, 4) # [2,3,1]# 從數(shù)據(jù)庫中查詢用戶瀏覽的商品的具體信息# goods_li = GoodsSKU.objects.filter(id__in=sku_ids)## goods_res = []# for a_id in sku_ids:# for goods in goods_li:# if a_id == goods.id:# goods_res.append(goods)# 遍歷獲取用戶瀏覽的商品信息goods_li = []for id in sku_ids:goods = GoodsSKU.objects.get(id=id)goods_li.append(goods)# 組織上下文context = {'page':'user','address':address,'goods_li':goods_li}# 除了你給模板文件傳遞的模板變量之外,django框架會把request.user也傳給模板文件return render(request, 'user_center_info.html', context)
其中靜態(tài)文件user_center_info.html中如下:
<h3 class="common_title2">最近瀏覽</h3><div class="has_view_list"><ul class="goods_type_list clearfix">{% for goods in goods_li %}<li><a href="detail.html"><img src="{{ goods.image.url }}"></a><h4><a href="detail.html">{{ goods.name }}</a></h4><div class="operate"><span class="prize">¥{{ goods.price }}</span><span class="unit">{{ goods.price }}/{{ goods.unite }}</span><a href="#" class="add_goods" title="加入購物車"></a></div></li>{% empty %}無歷史瀏覽記錄{% endfor %}</ul></div>相關(guān)模塊代碼:
商品模型類中g(shù)oods–models.py
django-redis獲取redis鏈接
總結(jié)
以上是生活随笔為你收集整理的Django中--使用redis存储历史浏览记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NWCD
- 下一篇: jquery兄弟标签_js jquery