Python3.6 20個入門級小程式(三)
阿新 • • 發佈:2019-02-19
Python3.6 20個小程式入門(三)
需求:將(第二題中)生成的 200 個啟用碼(或者優惠券)儲存到 MySQL 關係型資料庫中。
分析:第二題中使用uuid生成了128位的唯一編碼,但是這種編碼在客戶輸入時及其繁瑣,目前社會上常使用6位——8位的啟用碼是怎麼做的呢?其實很簡單,首先通過標準庫string生成包含0~9,a~z,A~Z的一個字串,然後使用標準庫中隨機選取的功能即可完成。另外網際網路上這道題的解決中出現MySQLdb三方庫,可是我使用的是Python3.6查詢資料發現MySQLdb只支援到2.*。因此不能使用它,Python3提供了替換的方案——pymysql三方庫可以滿足需求。
安裝pymysql
pip install pymysql
原始碼:
#-*- coding:utf-8-*- #生成邀請碼功能 import pymysql import string,random def generateCode(n): r=[] s=string.digits+string.ascii_letters for i in range(200): t='' for j in range(n): t+=random.choice(s) r.append(t) return r #存入mysql資料庫功能 conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='dan81dan', db='pythontest', charset='utf8') cursor = conn.cursor() r = generateCode(8) sql = "INSERT INTO `code1` (`id`,`code`) VALUES(%s,%s)" for i in range(200): cursor.execute(sql,(i+1,r[i])) conn.commit() cursor.close() conn.close()
本程式碼中關於資料庫插入的程式碼中
sql = "INSERT INTO `code1` (`id`,`code`) VALUES(%s,%s)"
坑:code1 、id 、code上邊不是單引號而是撇(數字1左邊那個按鈕)