明凯博客

关注网站技术,一个特立独行的程序员

【python案例】批量生成可逆转的优惠券

我们再做电商的时候,经常要生成优惠券这些的东西。
要简单点,随便随机一些不重复的字符串就可以了。
但是有时候我们需要根据单个产品来生产优惠券,又可以根据优惠券找出这个产品ID。
这就是我们所说的可逆转的解码和编码。

首先我们来看看代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/python
# -*- coding: utf-8 -*-
import base64
 
# base64编码方便使用
 
# 通过id检验优惠券是否存在,通过goods查找商品
coupon = {
    'id': '1000',
    'goods': '500',
}
 
 
def gen_coupon(id, goods):
    coupon['id'] = id
    coupon['goods'] = goods
    raw = ','.join([k + ':' + v for k, v in coupon.items()])
    raw_64 = base64.urlsafe_b64encode(raw.encode('utf-8'))
    c_code = raw_64.decode()
    return c_code
 
 
def save_coupon(c_code):
    with open('coupon.txt', 'a+') as file:
        file.write(c_code+'\n')
 
 
def show_coupon(c_code):
    print('优惠码:', c_code)
 
 
def parse_coupon(c_code):
    print('解析优惠码:', base64.urlsafe_b64decode(c_code.encode('utf-8')))
 
 
def gen_all():
    for i in range(1000, 1200):
        c_code = gen_coupon(str(i), str(int(i/2)))
        save_coupon(c_code)
 
 
if __name__ == '__main__':
    gen_all()

这里我们用了base64.urlsafe_b64encode来生成编码。

用 raw = ‘,’.join([k + ‘:’ + v for k, v in coupon.items()])把id和goods组合到一起,这样子的格式:id:1000,goods:500
我们来运行这段python代码,看看目录文件下生成的优惠码。

4

, ,

相关文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注