用户中心,历史浏览记录,界面情况

思考与讨论
增
- 什么时候需要添加历史浏览记录
https://juejin.im/editor/drafts/5da33220e51d45782c23fad2
用户浏览了商品详情页的时候,把商品加入到数据库中
查
- 什么时候需要获取历史浏览记录
https://juejin.im/editor/drafts/5da3329ce51d4578200cc9c6
用户中心,个人信息页,查询
- 历史浏览记录需要存在哪里
https://juejin.im/editor/drafts/5da332b0e51d4577fe41b68d
存在文件中
存mysql
存redis
存cookie
存session
存mongodb
》存数据库中
存redis数据库中
因为,临时存存
- 按照怎样的数据结构来存
https://juejin.im/editor/drafts/5da332cfe51d4578305f3099
字串
字典
列表
存其它?
6
8
1
3
7
6 如果插入了重复的数据,先删掉旧的,再把新的往0号位插
33
histrot = 【33,6,7,3,1,8】
return history[0:5]
用户张三的购物记录
用户李四的购物记录
9
history_011: [1,3]
history_022:[3,9,8,5]
redis连接对象的获取
用到了django-redis的一个方式
https://blog.youkuaiyun.com/ifubing/article/details/102539912
获取数据并且关注排序
数据可以获取了
1,获取到的数据类型列表一类的
测试一下
https://juejin.im/post/5da341f6e51d45780e4cea22
2,传给前端的结果,要是有顺序的
https://juejin.im/post/5da348786fb9a04e1325e345
3,开始弄视图
https://juejin.im/post/5da349c7f265da5bad405eef
# /user
class UserInfoView(LoginRequiredMixin, View):
# class UserInfoView(View):
def get(self, request):
"""个人信息显示"""
# 获取用户个人信息
user = request.user
address = Address.objects.get_default_address(user)
# 获得redis连接
import django_redis
conn = django_redis.get_redis_connection('default')
# 获取数据
history_key = "history_{}".format(user.id)
sku_ids = conn.lrange(key,0,4) # [b'6',b'1']
from apps.goods.models import GoodsSKU
goods_res = list()
for id in sku_ids:
goods = GoodsSKU.objects.get(id=id)
goods_res.append(goods)
# 获取用户的历史浏览记录
return render(request, "user_center_info.html",
{'page':'user',
'address': address,
'goods_li': goods_res
})
for … empty…endfor

4,传数据给前端
https://juejin.im/post/5da34ec8e51d45782e6039eb
{% extends 'base_user_center.html' %}
{% block right_content %}
<div class="right_content clearfix">
<div class="info_con clearfix">
<h3 class="common_title2">基本信息</h3>
<ul class="user_info_list">
<li><span>用户名:</span>{{ user.username }}</li>
<li><span>联系方式:</span>{{ address.phone|default:'未设置电话'}}</li>
<li><span>联系地址:</span>{{ address.addr|default:'未设置地址'}}</li>
</ul>
</div>
<h3 class="common_title2">最近浏览</h3>
<div class="has_view_list">
<ul class="goods_type_list clearfix">
{% for goods in goods_li %}
<li>
{# <a href="../static/detail.html"><img src="../static/images/goods/goods003.jpg"></a>#}
<a href="../static/detail.html"><img src="{{ goods.image.url }}"></a>
{# <h4><a href="../static/detail.html">大兴大棚草莓</a></h4>#}
<h4><a href="../static/detail.html">{{ goods.name }}</a></h4>
<div class="operate">
{# <span class="prize">¥16.80</span>#}
<span class="prize">¥{{ goods.price }}</span>
{# <span class="unit">16.80/500g</span>#}
<span class="unit">{{ goods.price }}/{{ goods.unite}}</span>
<a href="#" class="add_goods" title="加入购物车"></a>
</div>
</li>
{% empty %}
暂无历史数据
{% endfor %}
</ul>
</div>
</div>
{% endblock right_content %}
5,测试数据

6,坑小结
https://juejin.im/post/5da35276f265da5b6a169f5b
逻辑小结
获取连接对象
查询历史记录,从redis中
根据历史记录,从mysql中查出商品数据行对象,存在一个容器中,此容器是排好序的商品行对象
把容器返回给前端
前端展示
本文探讨了在用户中心实现历史浏览记录的功能,包括何时添加和获取记录,数据存储位置选择,如数据库、Redis等,并详细描述了使用Django和Redis进行数据存储和检索的过程。
2万+

被折叠的 条评论
为什么被折叠?



