学习django部分笔记之AXF项目

AXF

开发流程

  • 产品经理产出需求文档
  • 产品根据需求需求文档做出原型图
  • 原型图交给设计对页面交互,细节进行设计
  • 之后会交到开发手中
    • 分析需求,设计数据模型
    • 从数据开始开发
    • 封装数据操作
    • 做数据展示

需求分析

  • 用户系统
  • 商品系统
  • 首页展示
  • 购物车
  • 订单系统
  • 地址系统
  • 优惠券
  • 积分系统,等级系统

搭建项目

  • 导入静态资源
适配
  • 前端学过的单位
    • px
    • em 相对单位 相对于父级元素,默认 16px
    • rem 相对单位,和em很像 相对于root 根级元素
  • 将屏幕宽度分为十份
添加到购物车
  • 购物车
    • 体现的是用户和商品的关系
    • 商品
    • 用户还没有
  • 添加到购物车
    • 判断用户是否登录
    • 未登录应该跳转到登录页面
    • 如果已经登录,添加到购物车
    • 通过使用ajax实现
闪购页面
  • 级联筛选+排序
  • 筛选需要条件
  • 见名知意
  • 排序
  • 前端端需要协商定制的一个字段(后台定制)
  • 定制接口
用户模块
  • 基础用户字段
    • name
    • password
    • email
    • icon
  • 激活权限
  • 逻辑删除
  • 用户权限
    • 读权限
    • 写权限
    • 删除权限
    • 删除别人的帖子
    • xxx
先实现静态页面
Django中面向对象
  • 模型继承
  • 模板继承
  • 视图函数
    • FBV 给予函数的视图函数
    • CBV 给予类的视图函数
      • 请求流程
      • Browser -> urls -> Views( Class ) -> Response -> Browser
      • urls -> UserView.as_view()
        • 判断参数是否是合法(是不是请求方法)
        • 判断关键字参数的key在我们类中是否存在
        • 定义新的view,用来做返回处理
        • 默认head请求功能和get一样
        • dispatch 分发
        • 根据方法的名字去判断
          • 是否存在于我们django支持的方法中
          • 获取方法对应函数
            • 获取到了
              • 将参数传递给处理函数
            • 未获取到
              • 直接返回405 请求方法不被支持
网络状态吗
  • 2xx

    • 成功
  • 3xx

    • 资源发生转移,迁移
  • 4xx

    • 客户端错误
  • 5xx

    • 服务器错误
  • 其余6xx-9xx

    • 预定额
    • 901 单终端登录
程序开发
  • 低耦合
  • 高内聚
程序结构
  • 如果程序中出现了上帝文件,上帝类
    • 创建App
      • 跨App调用
      • 循环引用
    • 创建多个Views
    • 将数据获取,数据筛选进行隔离
用户激活
  • 激活策略
    • 邮件
    • 短信验证码
  • 邮件激活
    • 注册的时候给你的邮箱发送一个邮件
    • 邮件中包含激活链接
      • 激活链接上有一个参数
      • 标识支持过期
      • 映射关系,标识参数可以映射到用户
购物车
  • 购物车和用户

  • 一个用户一个购物车

  • 一个购物车对应多个商品

  • 一个商品可以被多个用户买

  • 商品和用户多对多的关系

  • 有一张额外的关系表

    • 存储可用户的唯一的标识
    • 存储了商品的唯一标识
    • 关系表就是购物车表(数据)
  • 购物车表设计

    • 商品标识
    • 用户标识
    • 商品数量
    • 此条商品数据是否选中
  • 下单

    • 将选中的商品生成一个订单
    • 用户和订单一对多
    • 一个订单对应多个购物车数据,一对多
  • 订单表设计

    • 用户标识
    • 订单号
    • 订单时间
    • 订单状态
  • 订单商品表

    • 订单标识
    • 商品标识
    • 商品数量
全选逻辑
  • 只要有未选中的,全选按钮就是未选中状态
    • 点击的时候,全选按钮变亮
    • 未选中的全都变成选中
  • 如果全都是选中的
    • 点击全选应该所有都变成未选中
  • 实现方案两种
    • 客户端实现
    • 服务端实现
支付
  • web支付

    • 需要注册开发者账号
    • 需要企业营业执照(个人营业执照)
    • 创建应用
      • 支付权限不可用
      • 需要你提供一个文档在什么情景下需要支付
      • 测试账号
    • 支付流程
      • 拿着订单信息,去调用支付宝的接口
      • 订单信息需要按照支付宝的格式进行签名
      • 调用支付之后,回给你一个回调函数
      • 使用回调函数修改订单状态
  • 移动支付

    • 支付流程可以绕过服务器
    • 支付之前需要将订单信息传递给服务器
    • 服务器记录订单信息
    • 允许客户端调用支付
    • 客户端调用支付之后记得通知给服务器
  • 支付实际上就是调用支付API

    • 实际上都是固定的模板
  • 想快速集成多种支付

    • 可以 ping++
算法
  • 编码
    • base64
    • urlencode
  • 摘要
    • md5
      • 128位的二进制
      • 32位的16进制,每一个16进制可以很方便的转换成unicode
    • sha
    • 单向不可逆
    • 不管输入多长,输出的长度都是固定的
  • 加密
    • 对称加密
      • DES,AES
      • 只有一个钥匙
    • 非对称加密
      • RSA
      • 钥匙是成对的
技能点
  • 模板中的

    • {{ block.super }}
    • 继承父模板中块中的内容,不覆盖内容,默认三次及以上出现的模板会覆盖内容
  • django ORM中

    • 显性属性(显性对象)
      • 开发者主动声明的属性
    • 隐性属性(隐性对象)
      • 开发者没有声明,django框架自动为开发者声明的
  • django模板中点语法

    • 代表属性和方法
    • 代表索引
    • 代表字典的key
  • jQuery中获取属性

    • attr
      • 获取任意属性
    • prop
      • 只能获取内置属性
  • 端口扫描

    • nmap
  • property

    • 将函数变成属性
    • 添加权限
      • 没有setter就是只读
      • 有了setter才能设置
  • 浮点型数据操作

    • 可能会出现精度问题
    • 保留两位小数
    • Decimal
Celery
  • 配置
    • init 中初始化celery
    • settings中配置Celery
  • 使用
    • 在App中创建自己的tasks
    • 使用share_task装饰函数
AOP
  • 中间件
    • process_request
      • 反爬
      • 统计
      • 过滤器(拦截器)
      • 黑白名单
    • process_view
      • CSRF
    • process_template_response
    • process_response
      • 统一配置
      • 跨域
      • 过期时间
    • process_exception
      • 页面友好化
  • 实现中间件
    • 创建中间件
    • 注册中间件
    • 在中间件中书写实现的功能
基于请求频率的反爬
  • 需求,一个ip一分钟只能访问10次
蜜罐抓猪
  • 返回的数据和显示的数据不对称的
  • 中间包含了一些伪数据
  • 伪数据只要被访问,立马拉黑请求者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值