day07-项目视频目录

  1. 商品部分-商品列表页(API接口设计与实现-获取分类SKU商品数据)

    功能:根据第三级分类获取分类SKU商品的数据。
    API: GET /categories/(?P<category_id>\d+)/skus/
    参数:
    	通过url地址传递第三级分类id
    响应:
    	[
            {
                "id": "商品id",
                "name": "商品名称",
                "price": "商品价格",
                "default_image_url": "默认图片",
                "comments": "评论量"
            },
            ...
    	]
    
  2. 商品部分-商品列表页(API接口设计与实现-分页和排序)

    分页和排序:
    GET /categories/(?P<category_id>\d+)/skus/?page=<页码>&page_size=<页容量>&ordering=<排序字段>
    
    注意:关闭AreasViewSet的分页:pagination_class = None
    
  3. 商品部分-商品列表页(前端vue逻辑)

  4. 商品部分-商品详情页(静态化说明)

    每个商品都生成一个静态详情页面,用户访问哪个商品,就返回对应商品的静态详情页面。
    
    步骤:
    1. 准备模板detail.html
    2. 定义一个生成静态详情页的函数:使用Celery封装为任务函数
    
    更新:
    	什么时候商品的详情表数据发生变化,再重新生成对应商品的静态详情页面。
    	
    商品的详情数据是谁维护的?
    答:Admin管理员。
    
  5. 商品部分-商品详情页(详情页静态化处理)

  6. 商品部分-商品详情页(详情静态页更新)

    Django Admin站点保存数据的处理流程:
    	admin修改数据表的数据时,数据表模型Admin管理类中save_model和delete_model会被调用,
    	save_model: 数据新增和更新时调用
    	delete_model: 数据删除时调用
    
  7. 商品部分-商品详情页(批量生成详情静态页脚本文件)

  8. 商品部分-商品搜索(需求&搜索引擎原理介绍)

    需求:
    	根据商品的name或者商品的副标题(caption)来搜索商品的信息。
    	
    key: iphone
    sql: select * from tb_sku where name like '%iphone%' or caption like '%iphone%';
    
    like语句的搜索效率很低。
    
    搜索引擎:
    # 索引结构数据:相当于新华字典检索目录
    {
        "1": {'对应的是数据库商品表中id为3的记录'},
        "2": {'对应的是数据库商品表中id为5的记录'},
        ...
    }
    
    ` Apple MacBook Pro 13.3英寸笔记本 银色\n【全新2017款】MacBook Pro,一身才华,一触,即发 了解【黑五返场特惠】 更多产品请点击【美多官方Apple旗舰店】`
    
    MacBook Pro:1 2
    
    MacBook Pro
    
    功能:
    1)建立索引结构数据。
    2)根据关键字来检索索引记录。
    
  9. 商品部分-商品搜索(es搜索引擎&环境搭建)

    es搜索引擎:
    	java实现的开源搜索引擎,是目前搜索引擎的首选。
    
  10. 商品部分-商品搜索(haystack全文检索框架&使用)

haystack全文检索框架:
	帮助开发者来使用搜索引擎的功能。
	
1)帮助开发者使用搜索引擎建立索引结构数据。
2)帮助开发时使用搜索引擎根据关键字检索索引的记录。
3)根据索引记录去数据库中查询出对应的数据。
  1. 商品部分-商品搜索(haystack对接es搜索引擎-索引数据的建立)

    1)定义模型对应的索引类
    2)指定索引字段的内容
    3)建立索引数据:python manage.py rebuild_index
    
  2. 商品部分-商品搜索(haystack对接es搜索引擎-搜索API定义)

    搜索API:
    	GET /skus/search/?text=<搜索关键字>
    	
    	[
            {
                "text": "索引字段内容",
                "object": {
                    "id": "商品id",
                    "name": "商品名称",
                    "price": "商品价格",
                    "default_image_url": "默认图片",
                    "comments": "评论量"
                }
            },
            ...
    	]
    	
    功能:
    	根据客户端传递`搜索关键字`利用搜索引擎先检索出索引记录,然后在根据索引记录到数据库表中查询出对应的数据,再将数据序列化进行返回。
    
  3. 商品部分-商品搜索(前端vue逻辑)

  4. 商品部分-浏览记录(浏览记录存储方案分析)

    1)何时存(when)
    	当登录用户访问商品详情页面时,需要记录登录用户的浏览记录。
    
    2)存在哪(where)
    	redis,防止用户频繁浏览商品,造成mysql数据库的频繁操作。
    
    3)怎么存(what)
    # 字符串
    string: <key>: <value>
            history_<user_id>: '1,4,3'
    
    # 哈希
    hash: <key>: {'<field>': '<value>', ...}
            history: {
                <user_id>: '1,4,3',
                ...
            }
                
    # 列表
    list: <key>: [<value>, ...]
            history_<user_id>: [2, 3, 5]
            
    # 无序集合
    set: <key>: (<member>, ...)
    
    # 有序集合
    zset: <key>: (<member>, ...)
            权重值
           history_<user_id>: ()
            
    浏览记录存储方案:
        list 每个用户的浏览记录采用一条数据来存
        history_<user_id>: [<sku_id>, ...]
    
    iduser_idsku_id
    123
    224
  5. 商品部分-浏览记录(浏览记录保存-API接口设计与实现)

    API: POST /browse_histories/
    参数:
    	通过请求头传递jwt token
    	{
            "sku_id": "商品id"
    	}
    响应:
    	{
            "sku_id": "商品id"
    	}
    	
    
    history_2: ['2', '3', '1', '5']
    
    # 浏览记录保存的过程
    # 1. 去重:如果用户已经浏览过该商品,那么商品的id需要先从redis列表中移除
    	lrem <key> <count> <value>: 有则移除,无则忽略
    	
    # 2. 左侧加入:把最新浏览的商品的id添加到列表的最左侧
    	lpush <key> <value> ...: 左侧加入
    	
    # 3. 截取:只保留用户最新浏览的几个商品id
    	ltrim <key> <start> <stop>: 只保留指定区间内的元素
    
  6. 商品部分-浏览记录(浏览记录保存-前端vue逻辑)

  7. 商品部分-浏览记录(浏览记录获取-API接口设计与实现)

  8. 商品部分-浏览记录(浏览记录获取-前端vue逻辑)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值