摘要:批量生成優惠券碼并寫入數據表說明這篇文章主要講的是個人工作中遇到的解決問題的方法而非程序寫的多優美。
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
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/37925.html
摘要:批量生成優惠券碼并寫入數據表說明這篇文章主要講的是個人工作中遇到的解決問題的方法而非程序寫的多優美。 python 批量生成優惠券碼并寫入數據表 說明:這篇文章主要講的是個人工作中遇到的解決問題的方法,而非程序寫的多優美。要完善的地方太多了,大家嘴下留情 why do this 為什么要這么做?優惠券碼直接在用的時候用程序直接生成不就OK了嗎? 好,那么問題來了,我們的系統需要一次性發...
摘要:本文是淺析微信支付系列文章的第十四篇,主要講解在如何開通商戶平臺的代金券或立減優惠功能,商家向指定用戶發送代金券,查詢發送記錄,代金券信息等。代金券微信支付代金券業務是基于微信支付,為了協助商戶方便地實現營銷優惠措施。 本文是【淺析微信支付】系列文章的第十四篇,主要講解在如何開通商戶平臺的代金券或立減優惠功能,商家向指定用戶發送代金券,查詢發送記錄,代金券信息等。 淺析微信支付系列已...
摘要:本文是淺析微信支付系列文章的第五篇,主要講解如何調用統一下單接口生成預支付單及調起支付頁面。淺析微信支付系列已經更新四篇了喲,沒有看過的朋友們可以看一下哦。 本文是【淺析微信支付】系列文章的第五篇,主要講解如何調用統一下單接口生成預支付單及調起支付頁面。 淺析微信支付系列已經更新四篇了喲~,沒有看過的朋友們可以看一下哦。 淺析微信支付:微信公眾號網頁授權 淺析微信支付:開發前的準備 ...
摘要:分析將鏈接生成二維碼不難,直接即可解決。打開圖片將生成的二維碼圖片按照路徑打開,獲取相關信息。銷毀圖片銷毀生成的圖片資源和生成的圖片文件。 需求 客戶商品管理系統,每個商品需要生成一個二維碼以便手機直接掃描查看商品信息,而對應的,二維碼下方必須有一串唯一碼,它們存在于一張圖片上,以方便用戶另存打印貼紙(不相干細節省略)。 分析 將鏈接生成二維碼不難,直接qrcode即可解決。 剩下的對...
閱讀 2573·2021-11-23 09:51
閱讀 2485·2021-09-30 09:48
閱讀 1081·2021-09-10 10:51
閱讀 2222·2021-08-12 13:22
閱讀 3573·2021-08-11 10:24
閱讀 2173·2019-08-30 15:55
閱讀 649·2019-08-30 14:05
閱讀 3214·2019-08-30 13:03