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中optparse模块使用浅析
Jan 01 Python
python对DICOM图像的读取方法详解
Jul 17 Python
Python实现输出某区间范围内全部素数的方法
May 02 Python
python 读取目录下csv文件并绘制曲线v111的方法
Jul 06 Python
python对绑定事件的鼠标、按键的判断实例
Jul 17 Python
python文字转语音实现过程解析
Nov 12 Python
tensorflow mnist 数据加载实现并画图效果
Feb 05 Python
python中wheel的用法整理
Jun 15 Python
tensorflow 大于某个值为1,小于为0的实例
Jun 30 Python
python两个list[]相加的实现方法
Sep 23 Python
Python 如何实现数据库表结构同步
Sep 29 Python
Jupyter notebook 更改文件打开的默认路径操作
May 21 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中计算时间差的几种方法
2009/12/31 PHP
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
php中file_get_contents与curl性能比较分析
2014/11/08 PHP
Yii2框架中日志的使用方法分析
2017/05/22 PHP
php实现数组中出现次数超过一半的数字的统计方法
2018/10/14 PHP
laravel框架模型、视图与控制器简单操作示例
2019/10/10 PHP
this[] 指的是什么内容 讨论
2007/03/24 Javascript
判断iframe是否加载完成的完美方法
2010/01/07 Javascript
JS复制到剪贴板示例代码
2013/10/30 Javascript
Javascript字符串浏览器兼容问题分析
2014/12/01 Javascript
javascript省市区三级联动下拉框菜单实例演示
2015/11/29 Javascript
JavaScript代码判断点击第几个按钮
2015/12/13 Javascript
easyui导出excel无法弹出下载框的快速解决方法
2016/11/10 Javascript
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
详解Vue 动态添加模板的几种方法
2017/04/25 Javascript
React组件生命周期详解
2017/07/03 Javascript
Javascript中prototype与__proto__的关系详解
2018/03/11 Javascript
Python struct.unpack
2008/09/06 Python
python用字典统计单词或汉字词个数示例
2014/04/22 Python
浅析Python中return和finally共同挖的坑
2017/08/18 Python
基于Django与ajax之间的json传输方法
2018/05/29 Python
django 微信网页授权认证api的步骤详解
2019/07/30 Python
Python如何获取Win7,Win10系统缩放大小
2020/01/10 Python
Python实现一个优先级队列的方法
2020/07/31 Python
ONLY瑞典官网:世界知名服装品牌
2018/06/19 全球购物
酒吧总经理岗位职责
2013/12/10 职场文书
升职自荐信怎么写
2015/03/05 职场文书
2015秋季开学典礼演讲稿
2015/07/16 职场文书
校长新学期致辞
2015/07/30 职场文书
2015年入党积极分子培养考察意见
2015/08/12 职场文书
音乐课《小猫钓鱼》教学反思
2016/02/18 职场文书
2016民族团结先进个人事迹材料
2016/02/26 职场文书
高三英语教学反思
2016/03/03 职场文书
小程序后台PHP版本部署运行 LNMP+WNMP
2021/04/01 Servers
Jpa Specification如何实现and和or同时使用查询
2021/11/23 Java/Android
PO模式在selenium自动化测试框架的优势
2022/03/20 Python