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

思考与讨论

  • 什么时候需要添加历史浏览记录
    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.csdn.net/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.useraddress = Address.objects.get_default_address(user)# 获得redis连接import django_redisconn = 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 GoodsSKUgoods_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中查出商品数据行对象,存在一个容器中,此容器是排好序的商品行对象

把容器返回给前端

前端展示

dj鲜生-用户中心-历史购物相关推荐

  1. dj鲜生-用户中心-个人信息

    分析 用户名联系方式,直接从用户数据行对象中获取 用户的地址,直接从地址中的默认地址中取值 如果用户新注册的没有设定用户地址,那就给另一种显示结果 完成视图类的逻辑 获取个人信息 获取浏览记录 返回结 ...

  2. dj鲜生-21-模板抽离-用户中心的父模板页制作-二级base_no_cart与三级base_user_center

    无购物车的搜索行 搜索的div有两种,一种带购物车 一种不带 完成不带购物车的父模板的创建 这些页面符合此情况 生成二级父模板,base_no_cart base页代码 只需要把搜索块里相关的内容进行 ...

  3. dj鲜生-33-用户中心-左侧链接与样式的完成

    需求说明 情况介绍 页面不同,对应的文字会亮起来 现在要实现这个效果 例如,现在是地址页 要让收货地址亮起来 思路 用户中心都是继承自模板 只需要在模板中添加判断即可 >如何添加判断? 让视图函 ...

  4. dj鲜生-32-用户中心-收货地址

    用户中心,收货地址 本页主要有两方面需要处理 >收货地址的显示,get请求 >表单的提交,可用post请求 表单的模板页处理 >先让模板页的界面变继承一下 参考 user_cente ...

  5. dj鲜生-30-退出用户的登陆

    退出登陆的 函数 正式使用前先测试一下 >在测试视图中练练手 访问看看效果 访问前,用户中心登陆状态 >访问后 控制台的结果 >实际的效果 已经把记录登陆状态的session数据清掉 ...

  6. dj鲜生-38-项目上线简介-从本地小项目到云服务的调试

    小结 项目上线要做的事情有: 代码传到linux虚拟机上 准备相关的运环境 配置好ip与端口 让程序跑起来 项目上线,就是把windows上的代码,拷备到linux上,让代码跑起来 在win上跑代码的 ...

  7. dj鲜生-10200818-商品首页展示-静态页下载资源

    静态页资源下载 https://cloud.189.cn/t/fqq6Vr36nIf2 (鲜生电商-静态页面) 商品首页模板处理 index.html页首理 生鲜首页的抽取过程,详解 - 知乎 htt ...

  8. dj鲜生-29-登陆后欢迎信息的显示

    用户登陆成功后,应该显示欢迎信息 相关知识点 一个请求过来后, request会有一个user属性 利用判断用户是否登陆,可以限定部分页面的访问 请求对象自带的user属性测试 >在视图中可直接 ...

  9. dj鲜生-27-登陆装饰器-使用django内置的登陆装饰器

    部分页面要求登陆后可见 没有登陆的用户,不让他访问 使用登陆验证装饰器实现 使用说明 导入函数 from django.contrib.auth.decorators import login_req ...

最新文章

  1. Spring Cloud Alibaba 极速运维:微服务与 DevOps
  2. linux tcpdump 抓包
  3. Enterprise search Callstack in runtime
  4. raspberry pi_每日新闻摘要:新型iMac,NVIDIA的Raspberry Pi竞争对手等
  5. canvas 平滑运动_什么是电视上的运动平滑?人们为什么讨厌它?
  6. redis 安装错误 jemalloc.h: No such file or directory
  7. 【转】java io 总结(图)
  8. 前端学习(2154):webpack横幅plugin的使用
  9. C语言指针,申请、释放内存,线程
  10. [转载] java避免空指针异常_第1部分:在现代Java应用程序中避免空指针异常
  11. 千锋教育python全集_千锋python+人工智能最新视频教程(大全集)
  12. SpringBoot(1.5.6.RELEASE)源码解析(三)
  13. mysql 开发基础系列19 触发器
  14. 中缀表达式变后缀分析
  15. TVS管、稳压管、肖特基二极管
  16. 高数 | 【一元函数微分学】导数部分经典快速例题
  17. 神舟 桌面显示计算机,神舟笔记本双显卡怎么切换不盯道你的笔记本型号
  18. android截视频播放器,Android视频播放器VPlayer升级:新增截图功能
  19. 微信小程序安卓密码加密的小黑点太大
  20. 后悔买房了,太难了,每个月工资8000,房贷5500

热门文章

  1. datagridview 绑定list 不能刷新界面_人人都可写代码-H5零基础编程-首页界面实操06...
  2. MUI 图标显示不出来 - 分析篇
  3. vue.js踩坑之ref引用细节点
  4. 子恩域名授权系统2.0全解
  5. matlab 图像二值化_推荐:为图像处理初学者设计的100个问题(含python实现代码)...
  6. 小丑马戏团风格英文404网页模板
  7. 东方终焉组审核页可做引导页
  8. linux分区创建ext4失败,RedHat/CentOS ext4无法格式化大分区 补充ext4格式化方式
  9. c高级语言程序设计B试题,高级语言程序设计试题(B)卷.doc
  10. 青苹果影视系统源码v1.3.20 多功能开源影视源码