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


Posted in Python onDecember 07, 2020

一、前言

最近做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()

以上就是python 实现数据库中数据添加、查询与更新的示例代码的详细内容,更多关于python 数据库添加、查询与更新的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python进程间通信用法实例
Jun 04 Python
解决Python一行输出不显示的问题
Dec 03 Python
教你一步步利用python实现贪吃蛇游戏
Jun 27 Python
使用python将mysql数据库的数据转换为json数据的方法
Jul 01 Python
pandas删除行删除列增加行增加列的实现
Jul 06 Python
python getpass模块用法及实例详解
Oct 07 Python
Python序列化与反序列化pickle用法实例
Nov 11 Python
Python读取配置文件(config.ini)以及写入配置文件
Apr 08 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
Apr 21 Python
Python sorted对list和dict排序
Jun 09 Python
浅析python 字典嵌套
Sep 29 Python
python实现学生信息管理系统(精简版)
Nov 27 Python
python 爬取小说并下载的示例
Dec 07 #Python
Python常用GUI框架原理解析汇总
Dec 07 #Python
pycharm中leetcode插件使用图文详解
Dec 07 #Python
使用Python爬取Json数据的示例代码
Dec 07 #Python
如何利用python生成MD5并去重
Dec 07 #Python
解决python3.6用cx_Oracle库连接Oracle的问题
Dec 07 #Python
python selenium 获取接口数据的实现
Dec 07 #Python
You might like
用PHP读注册表
2006/10/09 PHP
PHP网站安装程序制作的原理、步骤、注意事项和示例代码
2010/08/01 PHP
PHP实现重载的常用方法实例详解
2017/10/18 PHP
php curl获取到json对象并转成数组array的方法
2018/05/31 PHP
php实现算术验证码功能
2018/12/05 PHP
获取服务器传来的数据 用JS去空格的正则表达式
2012/03/26 Javascript
js中传递特殊字符(+,&)的方法
2014/01/16 Javascript
jquery 通过name快速取值示例
2014/01/24 Javascript
简单的jquery左侧导航栏和页面选中效果
2014/08/21 Javascript
js防止页面被iframe调用的方法
2014/10/30 Javascript
JS获取iframe中marginHeight和marginWidth属性的方法
2015/04/01 Javascript
JavaScript实现跟随滚动缓冲运动广告框
2017/07/15 Javascript
微信小程序内拖动图片实现移动、放大、旋转的方法
2018/09/04 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
js 计数排序的实现示例(升级版)
2020/01/12 Javascript
如何利用Node.js与JSON搭建简单的动态服务器
2020/06/16 Javascript
Python time模块详解(常用函数实例讲解,非常好)
2014/04/24 Python
Python实现网络端口转发和重定向的方法
2016/09/19 Python
python 列表删除所有指定元素的方法
2018/04/19 Python
python判断文件是否存在,不存在就创建一个的实例
2019/02/18 Python
Python opencv实现人眼/人脸识别以及实时打码处理
2019/04/29 Python
Python实现堡垒机模式下远程命令执行操作示例
2019/05/09 Python
pip安装python库的方法总结
2019/08/02 Python
python 数据提取及拆分的实现代码
2019/08/26 Python
如何基于python实现归一化处理
2020/01/20 Python
Pygame框架实现飞机大战
2020/08/07 Python
Pycharm编辑器功能之代码折叠效果的实现代码
2020/10/15 Python
浅谈html5与APP混合开发遇到的问题总结
2018/03/20 HTML / CSS
教师自荐信范文
2013/12/09 职场文书
老师给学生的表扬信
2014/01/17 职场文书
大学生优秀自荐信范文
2014/02/25 职场文书
劳动工资科岗位职责范本
2014/03/02 职场文书
教师遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
公司食堂管理制度
2015/08/05 职场文书
2017年寒假少先队活动总结
2016/04/06 职场文书
使用pandas模块实现数据的标准化操作
2021/05/14 Python