Table of Contents
-
model.UserInfo._meta.app_label #获取该类所在app的app名称 model.UserInfo._meta.model_name #获取该类对应表名(字符串类型) model.UserInfo._meta.get_field('username') #获取该类内指定字段信息(对象) model.UserInfo._meta.fields #获取该类内所有字段对象 model.UserInfo._meta.get_fields #获取该类内所有字段信息(对象),包含反向关联的字段 model.UserInfo._meta.many_to_many #获取该类内多对多字段信息 model.UserInfo._meta.get_field('username').verbose_name #获取该类内‘username’字段,verbose_name 的值
js怎么获取cookie
- cookie特征
- 1.用;来分割
- 2.是键值对形式
Js match方法
- stringObj.match(rgExp) 字符串对象和正则表达式
- 匹配下标0 是匹配元素
- 匹配下标1 是匹配元组元素
- 返回input(源字符串)、index(索引位置)和lastIndex(最后匹配最后字符+1位置)
为什么使用try..else
- else是无异常情况下执行,而else外的是有没有异常都执行
celery使用
-
简介:
- 分布式队列,实时操作,百万级任务
-
优点
- 简单,高可用,快速,灵活
-
应用场景
- Web耗时任务,定时任务,任务场景
-
工作原理
- Task 任务 (异步任务,定时任务)
- Broker 消息中间件 (存放任务,等待Worker执行)
- Worker 监视任务,执行任务(分布式)
- 从消息队列取出任务执行,可以执行多个,
- Backend 保存任务结果
- Redis Memcached 等等
-
目录结构
- __init__ 可以用来初始化Celery
- config.py 配置文件
- tasks.py 任务执行代码
-
celery初始化代码
-
#!/usr/bin/env python3 # -*- coding:utf-8 -*- # Author:wd from celery import Celery app = Celery('project') # 创建 Celery 实例 app.config_from_object('project.config') # 加载配置模块
-
-
config配置文件
- BROKER_URL
- CELERY_RESULT_BACKEND
-
任务文件
- 被@app.task 修饰的函数
- app是Celery的实例对象
-
启动celery
- celery worker -A project -l debug
- worker 代表启动角色 (beat等)
- -A 项目路径
- -l 日志等级
- celery –help
- celery worker -A project -l debug
-
添加任务(开始执行)
- task中的函数.delay(‘’) 开始执行任务
- 返回对象 AsyncResult
- state: 返回任务状态;
- task_id: 返回任务id;
- result: 返回任务结果,同get()方法;
- ready(): 判断任务是否以及有结果,有结果为True,否则False;
- info(): 获取任务信息,默认为结果;
- wait(t): 等待t秒后获取结果,若任务执行完毕,则不等待直接获取结果,若任务在执行中,则wait期间一直阻塞,直到超时报错;
- successfu(): 判断任务是否成功,成功为True,否则为False;
Scrapy 请求头
- 请求Cookie Cookie = response.request.headers.getlist('Cookie')
- 响应Cookie Cookie = response.headers.getlist('Set-Cookie')
python 异常问题
- 凡是涉及流,文件等有异常的操作,一定要捕获,
- 经常导致意外情况发生
5.知识内容个人梳理
6.今天都复习了之前的什么内容