zoukankan      html  css  js  c++  java
  • 【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 的配置:

    测试:

  • 相关阅读:
    HDU 2188 悼念512汶川大地震遇难同胞——选拔志愿者
    博弈论小结
    HDU 2149 Public Sale
    有上下界限制的网络流-总结
    loj #117. 有源汇有上下界最小流
    jquery中not的用法[.not(selector)]
    Assert随笔
    Maps.newHashMapWithExpectedSize(2)
    java1.8操作日期
    控制input只输入数字--- onkeyup="value=value.replace(/[^d]/g,'')"
  • 原文地址:https://www.cnblogs.com/yuanyuan2017/p/10181355.html
Copyright © 2011-2022 走看看