python 实现数据库中数据添加、查询与更新的示例代码

作者:咖啡少女不加糖。 时间:2023-10-08 04:09:51 

一、前言

最近做web网站的测试,遇到很多需要批量造数据的功能;比如某个页面展示数据条数需要达到10000条进行测试,此时手动构造数据肯定是不可能的,此时只能通过python脚本进行自动构造数据;本次构造数据主要涉及到在某个表里面批量添加数据、在关联的几个表中同步批量添加数据、批量查询某个表中符合条件的数据、批量更新某个表中符合条件的数据等。

二、数据添加

即批量添加数据到某个表中。

insert_data.py


import pymysql
import random
import time
from get_userinfo import get_userinfo
from get_info import get_info
from get_tags import get_tags
from get_tuser_id import get_utag

class DatabaseAccess():
 def __init__(self):
   self.__db_host = "xxxxx"
   self.__db_port = 3307
   self.__db_user = "root"
   self.__db_password = "123456"
   self.__db_database = "xxxxxx"
 # 连接数据库
 def isConnectionOpen(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'
   )

# 插入数据
 def linesinsert(self,n,user_id,tags_id,created_at):

self.isConnectionOpen()
   # 创建游标
   global cursor
   conn = self.__db.cursor()
   try:
     sql1 = '''
     INSERT INTO `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,)
   except Exception as e:
     print(e)
   finally:
     # 关闭游标
     conn.close()
     self.__db.commit()

self.__db.close()

def get_data(self):

# 生成对应数据 1000条
   for i in range(0,1001):
     created_at = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
     # print(create_at)
     # 用户id
     tuserids = []
     tuserid_list = get_utag()
     for tuserid in tuserid_list:
       tuserids.append(tuserid[0])
     # print(tuserids)
     userid_list = get_userinfo()
     user_id = random.choice(userid_list)[0]
     if user_id not in tuserids:
       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


import pymysql
import pandas as pd
import numpy as np

def get_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 = 'select id from cf_tags where id between 204 and 298'
 # 将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)
 return df2
 conn.close()

三、批量更新数据

select_data.py


import pymysql
import pandas as pd
import numpy as np

def get_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 = 'select id from cf_tags where id between 204 and 298'
 # 将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)
 return df2
 conn.close()

来源:https://www.cnblogs.com/lxmtx/p/14089780.html

标签:python,数据库
0
投稿

猜你喜欢

  • Javascript脚本获取form和input内容的方法(两种方法)

    2024-04-29 13:18:08
  • python 实现识别图片上的数字

    2021-06-17 13:09:31
  • python2.7+selenium2实现淘宝滑块自动认证功能

    2023-06-06 14:29:34
  • php 中phar包的使用教程详解

    2024-03-16 15:38:48
  • Python容器类型公共方法总结

    2022-06-24 23:58:06
  • Python算法练习之二分查找算法的实现

    2023-08-27 14:29:29
  • python3实现无权最短路径的方法

    2023-07-11 23:26:40
  • python结合shell查询google关键词排名的实现代码

    2023-10-11 21:28:47
  • SQL Server中元数据函数的用法

    2024-01-20 16:26:54
  • python文件读写操作与linux shell变量命令交互执行的方法

    2022-10-24 06:37:55
  • python中查看变量内存地址的方法

    2023-11-06 01:38:21
  • Python的string模块中的Template类字符串模板用法

    2023-02-02 10:53:05
  • python中的正则表达式,贪婪匹配与非贪婪匹配方式

    2023-04-04 18:37:36
  • python包pdfkit(wkhtmltopdf) 将HTML转换为PDF的操作方法

    2022-11-14 18:37:28
  • Python3爬虫RedisDump的安装步骤

    2023-07-17 00:42:15
  • PyQt5入门之基于QListWidget版本实现图片缩略图列表功能

    2023-07-15 08:32:52
  • 使用模板实现ASP代码与页面分离

    2008-09-12 16:07:00
  • 记得使用try+catch

    2010-01-29 12:48:00
  • [CSS+JS]同一页面可以重复使用的选项卡

    2009-02-12 12:53:00
  • 教你怎么用Python生成九宫格照片

    2023-12-02 17:20:51
  • asp之家 网络编程 m.aspxhome.com