-
用户部分-省市区三级联动(地区信息视图集使用)
GET /areas/: 获取所有省级地区的数据 GET /areas/(?P<pk>\d+)/: 获取指定地区的数据 视图集对象action属性: 重写get_serializer_class和get_queryset,根据不同的操作返回不同的序列化器类和不同的查询集。
-
用户部分-省市区三级联动(网站优化-数据缓存介绍)
概念: 对于经常被用户所使用的数据,为了提升网站的性能,可以将这些数据存放到缓存中,当用户来访问的时候,直接从缓存中获取数据进行返回;只有缓存中不存在的时间再去查询数据库。
-
用户部分-省市区三级联动(网站优化-地区数据的缓存)
GET /areas/ GET /areas/(?P<pk>\d+)/ 缓存设置获取扩展包:drf-extensions 装饰器: cache_response: 当客户端来访问时,先到缓存中获取对应的数据,如果获取到则直接进行返回;如果获取不到就会调用API代码,并且在返回响应之前会先将响应数据在缓存中进行存储。 @cache_response() def get(self, request): pass 注意:继承CacheResponseMixin时需要放在ReadOnlyModelViewSet类的前面。
-
用户部分-地址管理(地址模型类创建&用户默认地址字段添加)
一对一关系: 一个用户只有一个默认地址,一个默认地址一定只对应一个用户。 models.OneToOneField('模型类', ...)
id(用户id) … default_address_id(默认地址id) 2 3 # 一对多 class BookInfo(...): pass class HeroInfo(...): hbook = models.ForeignKey(BookInfo, ...) # 查询和图书对象关联的英雄(由1查多) book.heroinfo_set.all() # 查询和英雄对象关联的图书(由多查1) hero.hbook # 一对一 class User(...): default_address = models.OneToOneField(Address, ..., related_name='addr_user') class Address(...): pass # 查询和用户对象关联的默认地址 user.default_address # 查询和默认地址关联的用户 default_address.addr_user
-
用户部分-地址管理(地址新增-API接口设计与实现)
API接口设计: POST /addresses/ 参数: 通过请求头传递jwt token { "title": "地址标题", "reciver": "收货人", "province_id": "省id", "city_id": "市id", "district_id": "区县id", "place": "详细地址", "mobile": "手机号", "tel": "固定电话", # 可以不传 "email": "邮箱" # 可以不传 } 响应: { "id": "地址id", "title": "地址标题", "reciver": "收货人", "province_id": "省id", "city_id": "市id", "district_id": "区县id", "place": "详细地址", "mobile": "手机号", "tel": "固定电话", "email": "邮箱", "province": "省名称", "city": "市名称", "district": "区县名称", } # 地址数量上限判断 <序列化器类对象>.context['request']:获取request对象
-
用户部分-地址管理(地址新增-前端vue逻辑)
-
用户部分-地址管理(查询|删除|修改)
# 1. 获取地址数据 API: GET /addresses/ 参数: 通过请求头传递jwt token 响应: { "user_id": "用户id", "default_address_id": "默认地址id", "limit": "最大地址上限", "addresses": [ { "id": "地址id", "title": "地址标题", "receiver": "收货人", "province_id": "省id", "city_id": "市id", "district_id": "区id", "province": "省名称", "city": "市名称", "district": "区名称", "place": "详细地址", "mobile": "手机号", "tel": "固定电话", "email": "邮箱" }, ... ] } # 2. 地址修改 API: PUT /addresses/(?P<pk>\d+)/ 参数: 通过请求头传递jwt token { "title": "地址标题", "receiver": "收货人", "province_id": "省id", "city_id": "市id", "district_id": "区id", "place": "详细地址", "mobile": "手机号", "tel": "固定电话", "email": "邮箱" } 响应: { "id": "地址id", "title": "地址标题", "receiver": "收货人", "province_id": "省id", "city_id": "市id", "district_id": "区id", "province": "省名称", "city": "市名称", "district": "区名称", "place": "详细地址", "mobile": "手机号", "tel": "固定电话", "email": "邮箱" } # 3. 地址删除 API: DELETE /addresses/(?P<pk>\d+)/ 参数: 通过请求头传递jwt token 响应: 状态码 204
-
用户部分-地址管理(设为默认|修改地址标题)
# 1. 设置默认地址 API: PUT /addresses/(?P<pk>\d+)/status/ 参数: 通过请求头传递jwt token 响应: { "message": "OK" } # 2. 修改地址标题 API:PUT /addresses/(?P<pk>\d+)/title/ 参数: 通过请求头传递jwt token { "title": "地址标题" } 响应: { "title": "地址标题" }
-
商品部分-商品数据表设计(广告分类表和广告内容表)
-
商品部分-商品数据表设计(商品分类表和商品频道表)
-
商品部分-商品数据表设计(SPU和SKU概念)
SPU: 属性值、特性相同的商品的统称。例如:IPhoneX SKU: 涉及到具体的某个特定规格的商品。例如:IPhoneX 红色 256G 全网通 MacBook Pro: SPU MackBook Pro 银色 512G 15.6寸: SKU
-
商品部分-商品数据表设计(商品信息关键表设计)
-
商品部分-商品数据表设计(商品其他数据表说明)
-
商品部分-商品模型类的定义&表创建
contents: 广告子应用 goods: 商品子应用
-
商品部分-FDFS文件存储系统(介绍&上传文件流程)
-
商品部分-Docker(介绍&安装&启动&停止)
-
商品部分-Docker(镜像image操作)
-
商品部分-Docker(容器container操作)
day05-项目视频目录
最新推荐文章于 2021-05-13 17:10:00 发布