美文网首页
Python之每日一练将数据写入MySQL中

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

作者: keitwo | 来源:发表于2017-12-29 07:55 被阅读459次

    第三题:将 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之每日一练将数据写入MySQL中

          本文链接:https://www.haomeiwen.com/subject/yexlgxtx.html