摘要:批量生成優(yōu)惠券碼并寫入數(shù)據(jù)表說明這篇文章主要講的是個人工作中遇到的解決問題的方法而非程序?qū)懙亩鄡?yōu)美。
python 批量生成優(yōu)惠券碼并寫入數(shù)據(jù)表 說明:這篇文章主要講的是個人工作中遇到的解決問題的方法,而非程序?qū)懙亩鄡?yōu)美。要完善的地方太多了,大家嘴下留情 why do this 為什么要這么做?優(yōu)惠券碼直接在用的時候用程序直接生成不就OK了嗎? 好,那么問題來了,我們的系統(tǒng)需要一次性發(fā)送幾十萬張優(yōu)惠券,怎么破。這里引來這個問題(php編寫的web程序)
CREATE TABLE `prefix_coupon_pool` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT "自增ID", `code` varchar(32) NOT NULL COMMENT "優(yōu)惠券碼 唯一性約束", `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調(diào)用方法 ./pymakecoupon.py pp 6 10000
pp:優(yōu)惠券前綴
6:優(yōu)惠券長度
10000:生成個數(shù)
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 "參數(shù)錯誤,調(diào)用方式為:./pymakecoupon.py p10 6 100" exit() try: prefix = args[1] length = int(args[2]) count = int(args[3]) except IndexError as e: print "參數(shù)錯誤" msg = "將生成前綴為:%s,優(yōu)惠券長度為:%s,總共%s個優(yōu)惠券碼" 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
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/37925.html
摘要:批量生成優(yōu)惠券碼并寫入數(shù)據(jù)表說明這篇文章主要講的是個人工作中遇到的解決問題的方法而非程序?qū)懙亩鄡?yōu)美。 python 批量生成優(yōu)惠券碼并寫入數(shù)據(jù)表 說明:這篇文章主要講的是個人工作中遇到的解決問題的方法,而非程序?qū)懙亩鄡?yōu)美。要完善的地方太多了,大家嘴下留情 why do this 為什么要這么做?優(yōu)惠券碼直接在用的時候用程序直接生成不就OK了嗎? 好,那么問題來了,我們的系統(tǒng)需要一次性發(fā)...
摘要:本文是淺析微信支付系列文章的第十四篇,主要講解在如何開通商戶平臺的代金券或立減優(yōu)惠功能,商家向指定用戶發(fā)送代金券,查詢發(fā)送記錄,代金券信息等。代金券微信支付代金券業(yè)務(wù)是基于微信支付,為了協(xié)助商戶方便地實(shí)現(xiàn)營銷優(yōu)惠措施。 本文是【淺析微信支付】系列文章的第十四篇,主要講解在如何開通商戶平臺的代金券或立減優(yōu)惠功能,商家向指定用戶發(fā)送代金券,查詢發(fā)送記錄,代金券信息等。 淺析微信支付系列已...
摘要:本文是淺析微信支付系列文章的第五篇,主要講解如何調(diào)用統(tǒng)一下單接口生成預(yù)支付單及調(diào)起支付頁面。淺析微信支付系列已經(jīng)更新四篇了喲,沒有看過的朋友們可以看一下哦。 本文是【淺析微信支付】系列文章的第五篇,主要講解如何調(diào)用統(tǒng)一下單接口生成預(yù)支付單及調(diào)起支付頁面。 淺析微信支付系列已經(jīng)更新四篇了喲~,沒有看過的朋友們可以看一下哦。 淺析微信支付:微信公眾號網(wǎng)頁授權(quán) 淺析微信支付:開發(fā)前的準(zhǔn)備 ...
摘要:分析將鏈接生成二維碼不難,直接即可解決。打開圖片將生成的二維碼圖片按照路徑打開,獲取相關(guān)信息。銷毀圖片銷毀生成的圖片資源和生成的圖片文件。 需求 客戶商品管理系統(tǒng),每個商品需要生成一個二維碼以便手機(jī)直接掃描查看商品信息,而對應(yīng)的,二維碼下方必須有一串唯一碼,它們存在于一張圖片上,以方便用戶另存打印貼紙(不相干細(xì)節(jié)省略)。 分析 將鏈接生成二維碼不難,直接qrcode即可解決。 剩下的對...
摘要:獲取阿里云訪問密鑰為了使用短信發(fā)送,您必須申請阿里云的訪問密鑰。國際港澳臺消息只能使用國際港澳臺短信模版發(fā)送短信。 1.獲取阿里云訪問密鑰 為了使用短信發(fā)送API-Python SDK,您必須申請阿里云的訪問密鑰。 阿里云訪問秘鑰是阿里云為用戶使用 API(非控制臺)來訪問其云資源設(shè)計(jì)的安全口令。您可以用它來簽名 API 請求內(nèi)容以通過服務(wù)端的安全驗(yàn)證。 該訪問秘鑰成對(AccessK...
閱讀 2580·2021-11-23 09:51
閱讀 2495·2021-09-30 09:48
閱讀 1094·2021-09-10 10:51
閱讀 2229·2021-08-12 13:22
閱讀 3583·2021-08-11 10:24
閱讀 2183·2019-08-30 15:55
閱讀 653·2019-08-30 14:05
閱讀 3220·2019-08-30 13:03