美文网首页
Python3链接使用MySQL

Python3链接使用MySQL

作者: c4a1d989518e | 来源:发表于2017-10-28 19:16 被阅读53次

开始使用Python3了,使用Python3最先写的是一个小的脚本,实现的需求就是,在数据库中插入1000条数据,方便进行接口测试。这1000条数据并不是随便插入的,比如说订单号,首先这个订单号要存储于其另一个表中,而且在另一个表中的某个字段也要符合要求。总之,并不是操作单个表,而是3个表的操作。我想还是用Python3吧。

python3连接mysql数据库的包有一些,python2和python3是不同的包,用python3时,使用的是pymysql这个包。它的菜鸟教程在这里,在这里可以查看出操作数据库的种种方法。

pip3 install PyMySQL

伪造数据常用代码

具体的使用数据库的方法,查看那个连接就好了,记录下,我的其他增加的代码,如插入订单号

order=random.sample(range(10,20),10)

这个代码可以生成10个10~20之间的数字,而且不是重复的。
伪造订单时间

a=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

还有就是伪造11位的手机号,一行代码搞定

phone_number=str(random.choice(['139','188','185','136','158','151'])+"".join(random.choice("0123456789") for i in range(8)))

连接数据库的示例中

db = pymysql.connect("localhost","testuser","test123","TESTDB" )

【localhost】是数据库的地址,【testuser】是用户名,【test123】是密码,【TESTDB】是库名,注意是库名,不是自己定义的名字。一般打开数据库后,映入眼帘的就是以古希腊众神命名的数据库,数据库中有表。
但是如果只填入这个还不行,会有这样的错误

UnicodeEncodeError: 'latin-1' codec can't encode character '\u2013' in position 637: ordinal not in range(256)

出现这样的错误,需要在其中添加charset='utf8',具体回答可看此

关于数据的操作还有要注意的是【UPDATE】是用来更改数据库表中的字段的内容的,而【INSERT】是插入数据,在空白处添加数据的。

批量写入数据库

还有关于批量写入数据,不要用for循环来频繁操作数据库,批量写入数据,可以用executemany

# 批量插入executemany  
def insert_by_many(table):  
    nrows = table.nrows  
    param=[]  
    for i in xrange(1,nrows):  
        # 第一列username,第二列salt,第三列pwd  
        param.append([table.cell(i, 0).value, table.cell(i, 1).value, table.cell(i, 2).value])  
    try:  
        sql = 'INSERT INTO user values(%s,%s,%s)'  
        # 批量插入  
        cur.executemany(sql, param)  
        conn.commit()  
    except Exception as e:  
        print e  
        conn.rollback()   
    print '[insert_by_many executemany] total:',nrows-1   
  

其中param的list字段,executemany会自动遍历。此方法是从这篇文章看到的Python MySQLdb 循环插入execute与批量插入executemany性能分析

参考文章

'latin-1' codec can't encode character '\u2013' in position 637: ordinal not in range(256)
Python3 MySQL 数据库连接

Python MySQLdb 循环插入execute与批量插入executemany性能分析

相关文章

网友评论

      本文标题:Python3链接使用MySQL

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