import json import requests # 创建一个HandleRequest类 class HandleRequest: """ 处理请求 """ # 创建一个构造方法,one_session自动保存会话信息 def __init__(self): self.one_session = requests.Session() def add_headers(self,headers): """添加公共请求头""" self.one_session.headers.update(headers) # 添加send方法,专门用来发起请求,定义封装的参数三种形默认式 # 默认请求方法:POST,默认参数格式:json格式 def send(self,url,method="post",data=None,is_json=True,**kwargs): # data = '{"name"="hc","gender":true}' # json格式的字符串 # data = "{"name"="hc","gender":True}" # 字典类型的字符串 # isinstance用来判断第一个字符串类型的,如果是,返回True,不是返回false if isinstance(data,str): try: # 对传递参数用json.loads进行格式转换,将JSON格式的参数转换为python中的字典格式或者嵌套字典的列表 data = json.loads(data) # 如果参数不是json格式的字符串,为字典格式执行以下代码 except Exception as e: print("使用日志器来记录日志") # 使用eval格式进行转换,保证两种格式的数据,都能进行转换 data = eval(data) # 将所有请求方法转换为小写 method = method.lower() if method == "get": # res = self.one_session.get(method,url,params=data,**kwargs) # params查询字符串参数 res = self.one_session.request(method,url,params=data,**kwargs) elif method in ("post","put","delete","patch"): # 有请求体 if is_json: # 如果is_json为True,那么以json格式的形式来传参 # res = self.one_session.post(url,json=data,**kwargs) res = self.one_session.request(method,url,json=data,**kwargs) else: # 如果is_json为False,那么以www-form的形式来传参 # res = self.one_session.post(url, data=data, **kwargs) res = self.one_session.request(method,url,data=data,**kwargs) else: res = None print("不支持【{}】请求方法".format(method)) return res def close(self): self.one_session.close() if __name__ == "__main__": # 1、构造请求的url:登录 login_url = "XXXXXXXXXXXXXXXX" # 2、充值 recharge_url = "XXXXXXXXXXXXXX" # 2、创建请求参数 headers = { "X-Lemonban-Media-Type": "XXXXXX", "User-Agent": "Moilla/5.0 leo" } login_params = { "mobile_phone": "13888888836", "pwd": "123456789" } # 3、执行登录 do_request = HandleRequest() # 创建HandRequest对象 do_request.add_headers(headers) # 添加公共请求头 # 通过对象发起请求,获取response响应报文 login_res = do_request.send(login_url,method="post",data=login_params,is_json=True) # 将response响应体的数据转换为字典,赋值给json_datas json_datas = login_res.json() # 取出响应报文的id值 member_id = json_datas["data"]["id"] # 取出响应报文中的token token = json_datas["data"]["token_info"]["token"] # 4、创建请求参数,body值 recharge_params = { "member_id": member_id, "amount":"50000", } # 字符串拼接需要传递的token参数 token_header = {"Authorization": "Bearer " + token} # 请求头中添加token do_request.add_headers(token_header) # 5、执行充值 recharge_res = do_request.send(recharge_url,data=recharge_params) pass
安装:pymysql
pip install pymysql
pymysql调用数据库步骤
import pymysql # 1、建立连接,db需要指定对哪一个数据库进行校验,conn:连接对象 conn = pymysql.connect(host="XXXXXXXXXX", # mysql服务器ip或者域名 user="XXXXXXXX", # 用户名 password="123456", # 密码 db="futureloan", # 要连接的数据库名 port=3306, # 数据库端口号默认3306 charset="utf8", # 数据库编码为utf8 ) # 2、创建游标对象 cursor = conn.cursor() # 3、执行SQL语句 sql_1 = "SELECT * FROM member WHERE mobile_phone = '13059298579';" # 使用游标对象执行sql语句 cursor.execute(sql_1) # 一定要提交,使用连接对象 conn.commit() # 4、获取执行的结果 # 获取的是元祖 print(cursor.fetchone()) # 5、一定要关闭游标和连接 # 先关闭游标,在关闭连接 cursor.close() conn.close()