【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 的配置:
测试: