数据存储 models.py
Requst
# Reqeust对用户输入数据首次封装
# Request也提供了封装数据处理成格式数据的方法 prepare
class Request(RequestHooksMixin):
def __init__(self,
method=None, url=None, headers=None, files=None, data=None,
params=None, auth=None, cookies=None, hooks=None, json=None):
# 定义函数参数为None,内部再用三元表达式处理成可变的数据类型
data = [] if data is None else data
files = [] if files is None else files
headers = {} if headers is None else headers
params = {} if params is None else params
hooks = {} if hooks is None else hooks
self.hooks = default_hooks()
for (k, v) in list(hooks.items()):
self.register_hook(event=k, hook=v)
self.method = method
self.url = url
self.headers = headers
self.files = files
self.data = data
self.json = json
self.params = params
self.auth = auth
self.cookies = cookies
# 执行__init__内部代码时,self这个变量是已经创建好了,可以放心使用
# d = dict() # 可变类型dict
# ret = d # ret作为返回值, d修改时ret也会跟着变动,所以放心使用self
def __repr__(self):
return '<Request [%s]>' % (self.method) # 学着定义更加明确 '<类名[标识如post]>'
def prepare(self):
# 类的使用有时也很简单,p属性与方法的结合体
p = PreparedRequest()
# p.prepare可处理的参数,初始化自带参数,绑定方法定义的参数
# 绑定方法对一些列参数进行处理,可以有直接返回值
# 也可以直接使用p,因为p是可变类型,并且还是属性和方法的结合体
p.prepare(
method=self.method,
url=self.url,
headers=self.headers,
files=self.files,
data=self.data,
json=self.json,
params=self.params,
auth=self.auth,
cookies=self.cookies,
hooks=self.hooks,
)
# pp 很神奇
return pPreparedRequest
prepare_method
prepare_url
prepare_headers
prepare_cookies
prepare_body
Response
定义模型类

向模型类写数据
从模型类读数据
Last updated