python練習冊-第0002題

RJzz發表於2018-07-18

Description

將 0001 題生成的 200 個啟用碼(或者優惠券)儲存到 MySQL 關係型資料庫中。

Analysis

這道題是送分題,就是讓人熟悉一下連結資料庫以及mysql的使用。

Solution

import pymysql
import random
import string
 
 
def generate(length):
    s = ''.join(random.sample(string.ascii_uppercase + string.digits, length))
    return s
 
 
if __name__ == '__main__':
 
    # print("請輸入啟用碼的長度: ")
    # length = int(input())
    # print("請輸入啟用碼的數目: ")
    # num = int(input())
 
    length = 10
    num = 200
 
    # 連結資料庫
    db = pymysql.connect(host="localhost", port=3306, user="root", password="root", db="three")
 
    # 使用cursor()方法建立一個遊標物件cursor
    cursor = db.cursor()
 
    # SQL 插入語句
 
 
    # 使用execute()方法執行SQL語句
 
    try:
        for i in range(num):
            # 執行mysql
            sql = "insert into py_3 values('" + generate(length) + "')"
            cursor.execute(sql)
 
        # 提交到資料庫執行
        db.commit()
    except:
        # 如果發生錯誤就回滾
        db.rollback()
        print("wrong")
 
        # 關閉資料庫
    db.close()
 

 

相關文章