Python.生成优惠券之base64的应用

如下代码:

import base64

sourcefilepath = "/Users/a1/Desktop/test.data"

# id 用来验证优惠券
# goods 用来查找商品
coupon={
    'id':'10010',
    'goods':'0001',
}

# 创建优惠券码
def create_coupon(idcode,goodscode):
    coupon['id'] = idcode
    coupon['goods'] = goodscode
    raw_str = ' '.join([k+':'+v for k,v in coupon.items()])
    raw_str_64 = base64.urlsafe_b64encode(raw_str.encode('utf-8'))
    coupon_code = raw_str_64.decode()
    return coupon_code

# 保存优惠券码到本地
def save_coupon(code):
    with open(sourcefilepath,'a+') as file:
        file.write(code+'\n')

# 展示优惠券
def show_coupon(code):
    print(code)

# 解析优惠券
def parse_coupon(code):
    parse_code = base64.urlsafe_b64decode(code.encode('utf-8'))
    print(parse_code)

# 数据合成操作
def all_gen_operations():
    for cc in range(1000,2000):
        code_str = create_coupon(str(cc),str(int(cc/2)))
        save_coupon(code_str)
        show_coupon(code_str)
        parse_coupon(code_str)
"""
即使是一个打算被用作脚本的文件, 也应该是可导入的. 并且简单的导入不应该导致这个脚本的主功能(main functionality)被执行, 这是一种副作用. 主功能应该放在一个main()函数中.
在Python中, pydoc以及单元测试要求模块必须是可导入的. 你的代码应该在执行主程序前总是检查 if __name__ == '__main__' , 这样当模块被导入时主程序就不会被执行.
"""
if __name__ == '__main__':
    all_gen_operations()

控制台输出

aWQ6NTg2OS9nb29kczoyOTM0LjU=
b'id:5869/goods:2934.5'
aWQ6NTg3MC9nb29kczoyOTM1LjA=
b'id:5870/goods:2935.0'
aWQ6NTg3MS9nb29kczoyOTM1LjU=
b'id:5871/goods:2935.5'
aWQ6NTg3Mi9nb29kczoyOTM2LjA=
b'id:5872/goods:2936.0'
aWQ6NTg3My9nb29kczoyOTM2LjU=

[Done] exited with code=null in 1.249 seconds

你可能感兴趣的:(Python.生成优惠券之base64的应用)