dj鲜生-用户中心-历史购物
用户中心,历史浏览记录,界面情况
思考与讨论
增
- 什么时候需要添加历史浏览记录
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鲜生-用户中心-历史购物相关推荐
- dj鲜生-用户中心-个人信息
分析 用户名联系方式,直接从用户数据行对象中获取 用户的地址,直接从地址中的默认地址中取值 如果用户新注册的没有设定用户地址,那就给另一种显示结果 完成视图类的逻辑 获取个人信息 获取浏览记录 返回结 ...
- dj鲜生-21-模板抽离-用户中心的父模板页制作-二级base_no_cart与三级base_user_center
无购物车的搜索行 搜索的div有两种,一种带购物车 一种不带 完成不带购物车的父模板的创建 这些页面符合此情况 生成二级父模板,base_no_cart base页代码 只需要把搜索块里相关的内容进行 ...
- dj鲜生-33-用户中心-左侧链接与样式的完成
需求说明 情况介绍 页面不同,对应的文字会亮起来 现在要实现这个效果 例如,现在是地址页 要让收货地址亮起来 思路 用户中心都是继承自模板 只需要在模板中添加判断即可 >如何添加判断? 让视图函 ...
- dj鲜生-32-用户中心-收货地址
用户中心,收货地址 本页主要有两方面需要处理 >收货地址的显示,get请求 >表单的提交,可用post请求 表单的模板页处理 >先让模板页的界面变继承一下 参考 user_cente ...
- dj鲜生-30-退出用户的登陆
退出登陆的 函数 正式使用前先测试一下 >在测试视图中练练手 访问看看效果 访问前,用户中心登陆状态 >访问后 控制台的结果 >实际的效果 已经把记录登陆状态的session数据清掉 ...
- dj鲜生-38-项目上线简介-从本地小项目到云服务的调试
小结 项目上线要做的事情有: 代码传到linux虚拟机上 准备相关的运环境 配置好ip与端口 让程序跑起来 项目上线,就是把windows上的代码,拷备到linux上,让代码跑起来 在win上跑代码的 ...
- dj鲜生-10200818-商品首页展示-静态页下载资源
静态页资源下载 https://cloud.189.cn/t/fqq6Vr36nIf2 (鲜生电商-静态页面) 商品首页模板处理 index.html页首理 生鲜首页的抽取过程,详解 - 知乎 htt ...
- dj鲜生-29-登陆后欢迎信息的显示
用户登陆成功后,应该显示欢迎信息 相关知识点 一个请求过来后, request会有一个user属性 利用判断用户是否登陆,可以限定部分页面的访问 请求对象自带的user属性测试 >在视图中可直接 ...
- dj鲜生-27-登陆装饰器-使用django内置的登陆装饰器
部分页面要求登陆后可见 没有登陆的用户,不让他访问 使用登陆验证装饰器实现 使用说明 导入函数 from django.contrib.auth.decorators import login_req ...
最新文章
- Spring Cloud Alibaba 极速运维:微服务与 DevOps
- linux tcpdump 抓包
- Enterprise search Callstack in runtime
- raspberry pi_每日新闻摘要:新型iMac,NVIDIA的Raspberry Pi竞争对手等
- canvas 平滑运动_什么是电视上的运动平滑?人们为什么讨厌它?
- redis 安装错误 jemalloc.h: No such file or directory
- 【转】java io 总结(图)
- 前端学习(2154):webpack横幅plugin的使用
- C语言指针,申请、释放内存,线程
- [转载] java避免空指针异常_第1部分:在现代Java应用程序中避免空指针异常
- 千锋教育python全集_千锋python+人工智能最新视频教程(大全集)
- SpringBoot(1.5.6.RELEASE)源码解析(三)
- mysql 开发基础系列19 触发器
- 中缀表达式变后缀分析
- TVS管、稳压管、肖特基二极管
- 高数 | 【一元函数微分学】导数部分经典快速例题
- 神舟 桌面显示计算机,神舟笔记本双显卡怎么切换不盯道你的笔记本型号
- android截视频播放器,Android视频播放器VPlayer升级:新增截图功能
- 微信小程序安卓密码加密的小黑点太大
- 后悔买房了,太难了,每个月工资8000,房贷5500
热门文章
- datagridview 绑定list 不能刷新界面_人人都可写代码-H5零基础编程-首页界面实操06...
- MUI 图标显示不出来 - 分析篇
- vue.js踩坑之ref引用细节点
- 子恩域名授权系统2.0全解
- matlab 图像二值化_推荐:为图像处理初学者设计的100个问题(含python实现代码)...
- 小丑马戏团风格英文404网页模板
- 东方终焉组审核页可做引导页
- linux分区创建ext4失败,RedHat/CentOS ext4无法格式化大分区 补充ext4格式化方式
- c高级语言程序设计B试题,高级语言程序设计试题(B)卷.doc
- 青苹果影视系统源码v1.3.20 多功能开源影视源码