【Python web 开发】购物车功能需求分析和加入购物车功能实现

首先我们看下表设计:

我们现在要实现的功能是 加入购物车逻辑,其实加入购物车这种可以在本地实现的,不用请求服务器,但是考虑商品的时效性,用接口来做体验可能要好一些

我们来分析下购物车的操作体验: 回去购物车商品列表,新增商品到购物车,删除购物车记录,对应的就是mixin 的 ListModelMixin, CreateModelMixin, DestroyModelMixin 

差不多mixin的所有方法都用到,那我们没必要一个一个去继承,viewSet.ModelViewSet 已经帮我们封装好了,查看源码

第一步:开始写我们的viewSet

第二步:来写我们的serializers,serializer 是继承Modelserializers 还是继承底层的Serializer呢?

一个用户已经添加了一件商品到购物车,再次添加 不再新增,而是在原来的基础上的num +1,如果用Modelserializers  做is_validate的时候会抛异常

我们来看createModelMixin 源码

所以serializers 我们就继承ModelSerializers

ps: serializer 是提供验证功能的,如果不用serializers做验证,那么我们的一些验证逻辑就必须放在viewSet 里面去写,这样代码的分离性就比较差了,我们就享受不到serializer 带给我们的好处了

 第三步:url 的配置:

测试:

原文地址:https://www.cnblogs.com/yuanyuan2017/p/10181355.html