2020.6.30 扩展延伸

发布于 2020-06-30  31 次阅读


1.复习内容

2.灵感代办

3.学习内容

  • python协程

    • 什么是协程 Coroutine:
    • 也称微线程,可以在执行函数A随时中断去执行函数B,(函数A,B中随时切换),这个不是函数调用方式来执行,类似多线程
    • 协程的实现原理 (通过yield可以实现协程)
      • yield
        • __next__() 启动恢复generator执行 send(None)
        • send(value) 发送值给yield表达式
          • expr = yield n expr是send发送的值
      • yield from
        • 可以:yield from 生成器()
        • 可以委派任务给另一个生成器,生成器返回生成器
    • 协程
    • 支持协程的库
      • gevent
      • tornado
      • asyncio
  • 开发用户中心

    • 省市区三级联动 知识点

      • 自关联字段的外键指向自身,所以 models.ForeignKey('self')
      • 使用related_name指明父级查询子级数据的语法
        • 默认Area模型类对象.area_set语法
      • related_name='subs'
        • 现在Area模型类对象.subs语法

4.扩展延伸知识

  • itsdangerous使用

    • 作用:JWT来生成一个Token灵牌
    • 使用:
      • from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
        serializer = Serializer(salt,expires_in=600) #salt
        info = {'username':"name","user_id":1}
        
        # 注意 捕获异常
        
        try:
              # 加密生成token
            token_encode = serializer.dumps(info)
            # 解密token
            token_decode = serializer.loads(token_encode)
        except Exceptions as e
              pirnt(e)

  • celery task参数

    • 任务绑定 bind = True
      • 绑定函数的第一个参数是self ,是任务对象
  • celery 工作模式

    • 进程
    • 协程
  • python 高并发处理

  • django model面向对象式用法

    • models模型创建的数据时候,可以使用字符串,也可以使用模型
  • django related_name='subs'

    • 手动指定django模型外键关联属性的名称
  • django 自关联

    • 一般是一查多时候使用
    • 用自己的字段,过滤一些自己的字段
  • python models meta中 ordering

  • scrapy 错误 twisted.internet.error.TimeoutError

    • 1.降低同时请求数量
      • CONCURRENT_REQUESTS = 2
    • 2.设置合适超时时间
      • DOWNLOAD_TIMEOUT = 1800
    • 3.在异常中间件中,重试
      • from twisted.internet.error import TimeoutError
        def process_exception(self, request, exception, spider):
        
            if isinstance(exception, TimeoutError):
                        return request

    • https://blog.csdn.net/Hepburn_li/article/details/90814471

5.知识内容个人梳理

6.今天都复习了之前的什么内容


Ares个人进阶之路