Python之每日一練將資料寫入MySQL中

2021-09-19 21:41:30 字數 1819 閱讀 5130

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

一、分析問題

由於是要把資料儲存到mysql中,這裡就需要用到python的怕pymysql模組,並且先生成再存入,

注意:1.這裡操作mysql的時候,先寫入一條,獲得id,然後再更新該條記錄。

2.建立的驗證碼的格式為---'16進製制的sql_id' + 'l' + 隨機碼

3.電腦端mysql server的安裝

二、**示例

#coding:utf-8

import pymysql

import random

import datetime

import string

def opt_mysql(num):    #連線資料庫

conn = pymysql.connect(host='localhost',port =3306,user='root',passwd='123456',db ='user')

cur = conn.cursor()    #通過獲取到的資料庫連線conn下的cursor()方法來建立游標

drop_table ='''drop table if exists python'''    #如資料庫中存在此python**則刪除該**

cur.execute(drop_table)

create_table ='''  #建立資料表

create table python(

id  int primary key not null auto_increment,

codes varchar(64) not  null,

create_time varchar(64)  not  null);

cur.execute(create_table)

for iin range(num):

create_time = datetime.datetime.now()    #獲取當前的時間

insert_table ='''insert into python(codes,create_time) values('testcode','%s')''' % create_time  #插入當前時間值

cur.execute(insert_table)

id = conn.insert_id()

code = create_code(id)

update_table ='''update python set codes = '%s' where id = %s'''% (code,id)    #插入更新資料

cur.execute(update_table)

conn.commit()

cur.close()

conn.close()

def create_code(id,length=15):    #格式轉換

code =hex(int(id))+'l'

length_rdm = length -len(code)

random_num =''.join(random.sample(string.letters + string.digits,length_rdm))

return code + random_num

if __name__ =='__main__':  #主程式

opt_mysql(100)

三、執行結果

執行結果

python每日一練

人生苦短,我用python 2018.6.5 有個目錄,裡面是你自己寫過的程式,統計一下你寫過多少行 包括空行和注釋,但是要分別列出來 coding utf 8 import re import glob defcodecolletion path filelist glob.glob path p...

Python每日一練

人生苦短,我用python 2018.6.13 最近事情有點多,有幾天沒寫了,正好最近需要統計一下各組排名,也就拿python代替手工了 各組給出其他組的排名,統計每個組最終的得分,第一名為0.5,第二名0.4,以此類推。coding utf 8 groups 3,2,5,4,6 1,3,5,6,4...

Python每日一練0002

如何序列化輸出元素包含字串元組的字串元組 好繞 舉個例子 zoo1 monkey elephant zoo2 python zoo1 將zoo2輸出為python,monkey,elephant容易想到使用join 函式,但join 函式要求元素必須都是字串型別,否則會丟擲typeerror錯誤 z...