Python之每日一练将数据写入MySQL中

2017-12-29  本文已影响459人  keitwo

第三题:将 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)

三、运行结果

运行结果
上一篇下一篇

猜你喜欢

热点阅读