摘要:批量生成优惠券码并写入数据表说明这篇文章主要讲的是个人工作中遇到的解决问题的方法而非程序写的多优美。
python 批量生成优惠券码并写入数据表 说明:这篇文章主要讲的是个人工作中遇到的解决问题的方法,而非程序写的多优美。要完善的地方太多了,大家嘴下留情 why do this 为什么要这么做?优惠券码直接在用的时候用程序直接生成不就OK了吗? 好,那么问题来了,我们的系统需要一次性发送几十万张优惠券,怎么破。这里引来这个问题(php编写的web程序)
CREATE TABLE `prefix_coupon_pool` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT "自增ID", `code` varchar(32) NOT NULL COMMENT "优惠券码 唯一性约束", `is_assigned` tinyint(1) DEFAULT "0" COMMENT "0:未分配 1:已分配", `created_at` int(10) unsigned DEFAULT "0" COMMENT "生成时间", PRIMARY KEY (`id`), UNIQUE KEY `index_code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;python 代码说明 1.安装python-dotenv用来获取.env配置
git:https://github.com/theskumar/python-dotenv
2.建立.env文件DB_HOST=localhost DB_DATABASE=test DB_USERNAME=root DB_PASSWORD=root DB_PORT=3306调用方法 ./pymakecoupon.py pp 6 10000
pp:优惠券前缀
6:优惠券长度
10000:生成个数
python源码如下#!/usr/bin/env python #coding:utf-8 import random import string from os.path import join, dirname from dotenv import load_dotenv from mysql import connector import mysql import os import time import sys originCode = string.ascii_lowercase failedRecord = 0 def getConnection(): dotenv_path = join(dirname(__file__), ".env") print dotenv_path load_dotenv(dotenv_path) host = os.environ.get("DB_HOST") user = os.environ.get("DB_USERNAME") password = os.environ.get("DB_PASSWORD") database = os.environ.get("DB_DATABASE") port = os.environ.get("DB_PORT") try: connect = connector.connect(host=host, user=user, password=password, database=database, port=port) return connect except mysql.connector.Error as e: print e return False except Exception as e: return False def makeCouponCode(prefix="p", length = 6): str = prefix if length == 0: pass for index in range(length): str += random.choice(originCode) return str if __name__ == "__main__": args = sys.argv codeList = [] if len(args) != 4: print "参数错误,调用方式为:./pymakecoupon.py p10 6 100" exit() try: prefix = args[1] length = int(args[2]) count = int(args[3]) except IndexError as e: print "参数错误" msg = "将生成前缀为:%s,优惠券长度为:%s,总共%s个优惠券码" msg = msg % (prefix, length, count) print msg inputPrompt = raw_input("y/n ") if inputPrompt == "y": pass else: print "bye" exit connect = getConnection() if connect == False: sys.exit(0) cursor = connect.cursor() codeString = "" now = int(time.time()) for index in range(1,count+1): pass code = makeCouponCode(prefix,length) codeTemplate = "("%s",%s)" code = codeTemplate % (code,now) codeList.append(code) print code if index % 1000 == 0: codeString = ",".join(codeList) sql = "INSERT IGNORE INTO prefix_coupon_pool(code,created_at)VALUES %s" sql = sql % (codeString) cursor.execute(sql) connect.commit() connect.close
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/37925.html
摘要:批量生成优惠券码并写入数据表说明这篇文章主要讲的是个人工作中遇到的解决问题的方法而非程序写的多优美。 python 批量生成优惠券码并写入数据表 说明:这篇文章主要讲的是个人工作中遇到的解决问题的方法,而非程序写的多优美。要完善的地方太多了,大家嘴下留情 why do this 为什么要这么做?优惠券码直接在用的时候用程序直接生成不就OK了吗? 好,那么问题来了,我们的系统需要一次性发...
摘要:本文是浅析微信支付系列文章的第十四篇,主要讲解在如何开通商户平台的代金券或立减优惠功能,商家向指定用户发送代金券,查询发送记录,代金券信息等。代金券微信支付代金券业务是基于微信支付,为了协助商户方便地实现营销优惠措施。 本文是【浅析微信支付】系列文章的第十四篇,主要讲解在如何开通商户平台的代金券或立减优惠功能,商家向指定用户发送代金券,查询发送记录,代金券信息等。 浅析微信支付系列已...
摘要:本文是浅析微信支付系列文章的第五篇,主要讲解如何调用统一下单接口生成预支付单及调起支付页面。浅析微信支付系列已经更新四篇了哟,没有看过的朋友们可以看一下哦。 本文是【浅析微信支付】系列文章的第五篇,主要讲解如何调用统一下单接口生成预支付单及调起支付页面。 浅析微信支付系列已经更新四篇了哟~,没有看过的朋友们可以看一下哦。 浅析微信支付:微信公众号网页授权 浅析微信支付:开发前的准备 ...
摘要:分析将链接生成二维码不难,直接即可解决。打开图片将生成的二维码图片按照路径打开,获取相关信息。销毁图片销毁生成的图片资源和生成的图片文件。 需求 客户商品管理系统,每个商品需要生成一个二维码以便手机直接扫描查看商品信息,而对应的,二维码下方必须有一串唯一码,它们存在于一张图片上,以方便用户另存打印贴纸(不相干细节省略)。 分析 将链接生成二维码不难,直接qrcode即可解决。 剩下的对...
阅读 2549·2021-11-23 09:51
阅读 2467·2021-09-30 09:48
阅读 1060·2021-09-10 10:51
阅读 2172·2021-08-12 13:22
阅读 3531·2021-08-11 10:24
阅读 2129·2019-08-30 15:55
阅读 596·2019-08-30 14:05
阅读 3190·2019-08-30 13:03