【1】基础知识类---urllib相关&itsdangerous加解密

一、urllib相关

1.urlencode

作用:python字典->查询字符串
导包:from urllib.parse import urlencode
举例:

# 1.将python字典转化成一个查询字符串
data = {
    'id': 1,
    'name': 'Jerry'
}
from urllib.parse import urlencode

res_qs = urlencode(data)
print(res_qs)

结果:id=1&name=Jerry

2.parse_qs

作用:查询字符串->python字典
导包:from urllib.parse import parse_qs
举例:

# 2.将查询字符串转化为python字典
query_str = 'a=17&b=18&c=19&c=20'
from urllib.parse import parse_qs

res_dic = parse_qs(query_str)  # 注意:key对应value是一个list
print(res_dic)

结果:{'a': ['17'], 'b': ['18'], 'c': ['19', '20']}

3.urlopen

作用:发送网络请求
导包:from urllib.request import urlopen
举例:

# 3. 发送网络请求
from urllib.request import urlopen

req_url = 'http://www.baidu.com'
# 获取响应对象
response = urlopen(req_url)
# 获取响应数据
res_bytes = response.read()  # bytes

res_str = res_bytes.decode()  # str
print(res_str)

二、itsdangerous加密、解密

1.安装&导包

安装: pip install itsdangerous
导包: from itsdangerous import TimedJSONWebSignatureSerializer as TJWSSerializer

2.dumps加密

举例:

    # 1.加密
    # 假设密钥:123abc
    data = {
        'openid': 'ADSAGASGDFATGSD345'
    }
    serializer = TJWSSerializer(secret_key='123abc', expires_in=60 * 60)
    res_bytes = serializer.dumps(data)  # bytes
    res_str = res_bytes.decode()  # str
    print(res_str)

结果:
eyJhbGciOiJIUzI1NiIsImlhdCI6MTUzNTY5MDIyOCwiZXhwIjoxNTM1NjkzODI4fQ.eyJvcGVuaWQiOiJBRFNBR0FTR0RGQVRHU0QzNDUifQ.5FbLlR_ig5xagSu9dtJ33y1SYFmCLM3f2Ep2t-OEMIo

3.loads解密

错误异常包:from itsdangerous import BadData
举例:

    # 2.解密(保证与加密时密码一致)
    data = 'eyJhbGciOiJIUzI1NiIsImlhdCI6MTUzNTY5MDIyOCwiZXhwIjoxNTM1NjkzODI4fQ.eyJvcGVuaWQiOiJBRFNBR0FTR0RGQVRHU0QzNDUifQ.5FbLlR_ig5xagSu9dtJ33y1SYFmCLM3f2Ep2t-OEMIo'
    serializer = TJWSSerializer(secret_key='123abc', expires_in=60 * 60)
    try:
        res_dict = serializer.loads(data)
    except BadData as e:
        print(e)
    else:
        print(res_dict)

结果:{'openid': 'ADSAGASGDFATGSD345'}

猜你喜欢

转载自blog.csdn.net/shlleylu/article/details/82254902
今日推荐