python 实现数据库中数据添加、查询与更新的示例代码
一、前言
最近做web网站的测试,遇到很多需要批量造数据的功能;比如某个页面展示数据条数需要达到10000条进行测试,此时手动构造数据肯定是不可能的,此时只能通过python脚本进行自动构造数据;本次构造数据主要涉及到在某个表里面批量添加数据、在关联的几个表中同步批量添加数据、批量查询某个表中符合条件的数据、批量更新某个表中符合条件的数据等。
二、数据添加
即批量添加数据到某个表中。
insert_data.py
importpymysql importrandom importtime fromget_userinfoimportget_userinfo fromget_infoimportget_info fromget_tagsimportget_tags fromget_tuser_idimportget_utag classDatabaseAccess(): def__init__(self): self.__db_host="xxxxx" self.__db_port=3307 self.__db_user="root" self.__db_password="123456" self.__db_database="xxxxxx" #连接数据库 defisConnectionOpen(self): self.__db=pymysql.connect( host=self.__db_host, port=self.__db_port, user=self.__db_user, password=self.__db_password, database=self.__db_database, charset='utf8' ) #插入数据 deflinesinsert(self,n,user_id,tags_id,created_at): self.isConnectionOpen() #创建游标 globalcursor conn=self.__db.cursor() try: sql1=''' INSERTINTO`codeforge_new`.`cf_user_tag`(`id`,`user_id`, `tag_id`,`created_at`,`updated_at`)VALUES({},{}, {},'{}','{}'); '''.format(n,user_id,tags_id,created_at,created_at) #执行SQL conn.execute(sql1,) exceptExceptionase: print(e) finally: #关闭游标 conn.close() self.__db.commit() self.__db.close() defget_data(self): #生成对应数据1000条 foriinrange(0,1001): created_at=time.strftime('%Y-%m-%d%H:%M:%S',time.localtime()) #print(create_at) #用户id tuserids=[] tuserid_list=get_utag() fortuseridintuserid_list: tuserids.append(tuserid[0]) #print(tuserids) userid_list=get_userinfo() user_id=random.choice(userid_list)[0] ifuser_idnotintuserids: user_id=user_id #标签id tagsid_list=get_tags() tags_id=random.choice(tagsid_list)[0] self.linesinsert(i,user_id,tags_id,created_at) if__name__=="__main__": #实例化对象 db=DatabaseAccess() db.get_data()
二、数据批量查询
select_data.py
importpymysql importpandasaspd importnumpyasnp defget_tags(): #连接数据库,地址,端口,用户名,密码,数据库名称,数据格式 conn=pymysql.connect(host='xxx.xxx.xxx.xxx',port=3307,user='root',passwd='123456',db='xxxx',charset='utf8') cur=conn.cursor() #表cf_users中获取所有用户id sql='selectidfromcf_tagswhereidbetween204and298' #将user_id列转成列表输出 df=pd.read_sql(sql,con=conn) #先使用array()将DataFrame转换一下 df1=np.array(df) #再将转换后的数据用tolist()转成列表 df2=df1.tolist() #cur.execute(sql) #data=cur.fetchone() #print(df) #print(df1) #print(df2) returndf2 conn.close()
三、批量更新数据
select_data.py
importpymysql importpandasaspd importnumpyasnp defget_tags(): #连接数据库,地址,端口,用户名,密码,数据库名称,数据格式 conn=pymysql.connect(host='xxx.xxx.xxx.xxx',port=3307,user='root',passwd='123456',db='xxxx',charset='utf8') cur=conn.cursor() #表cf_users中获取所有用户id sql='selectidfromcf_tagswhereidbetween204and298' #将user_id列转成列表输出 df=pd.read_sql(sql,con=conn) #先使用array()将DataFrame转换一下 df1=np.array(df) #再将转换后的数据用tolist()转成列表 df2=df1.tolist() #cur.execute(sql) #data=cur.fetchone() #print(df) #print(df1) #print(df2) returndf2 conn.close()
以上就是python实现数据库中数据添加、查询与更新的示例代码的详细内容,更多关于python数据库添加、查询与更新的资料请关注毛票票其它相关文章!