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连接MySQL、MongoDB、Redis、memcache等数据库的方法
Nov 15 Python
Python中字典映射类型的学习教程
Aug 20 Python
谈谈如何手动释放Python的内存
Dec 17 Python
Python 函数基础知识汇总
Mar 09 Python
Python3之读取连接过的网络并定位的方法
Apr 22 Python
Python学习笔记之迭代器和生成器用法实例详解
Aug 08 Python
Pandas聚合运算和分组运算的实现示例
Oct 17 Python
pytorch:实现简单的GAN示例(MNIST数据集)
Jan 10 Python
python golang中grpc 使用示例代码详解
Jun 03 Python
python程序需要编译吗
Jun 19 Python
Pytorch可视化的几种实现方法
Jun 10 Python
基于Python编写简易版的天天跑酷游戏的示例代码
Mar 23 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运行报错Call to undefined function curl_init()的最新解决方法
2016/11/20 PHP
PHP生成图片缩略图类示例
2017/01/12 PHP
jquery(hide方法)隐藏指定元素实例
2013/11/11 Javascript
js中for in的用法示例解析
2013/12/25 Javascript
node.js中的fs.realpath方法使用说明
2014/12/16 Javascript
js模仿php中strtotime()与date()函数实现方法
2015/08/11 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
2017/02/13 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
2017/04/20 jQuery
教你用Cordova打包Vue项目的方法
2017/10/17 Javascript
JQuery中queue方法用法示例
2019/01/31 jQuery
layui数据表格 table.render 报错的解决方法
2019/09/29 Javascript
JS猜数字游戏实例讲解
2020/06/30 Javascript
对于Python中线程问题的简单讲解
2015/04/03 Python
ubuntu安装mysql pycharm sublime
2018/02/20 Python
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
Python计算一个给定时间点前一个月和后一个月第一天的方法
2018/05/29 Python
Python全局变量与局部变量区别及用法分析
2018/09/03 Python
python版大富翁源代码分享
2018/11/19 Python
pygame游戏之旅 创建游戏窗口界面
2018/11/20 Python
解决pycharm上的jupyter notebook端口被占用问题
2019/12/17 Python
TensorFlow Autodiff自动微分详解
2020/07/06 Python
详解rem 适配布局
2018/10/31 HTML / CSS
全球领先的鞋类零售商:The Walking Company
2016/07/21 全球购物
Smashbox官网:美国知名彩妆品牌
2017/01/05 全球购物
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
英国No.1体育用品零售商:SportsDirect.com
2019/10/16 全球购物
报到证丢失证明
2014/01/11 职场文书
会计专业自荐信范文
2015/03/05 职场文书
优秀员工自荐书
2015/03/06 职场文书
外贸采购员岗位职责
2015/04/03 职场文书
2015年度物业公司工作总结
2015/04/27 职场文书
青春雷锋观后感
2015/06/10 职场文书
python第三方网页解析器 lxml 扩展库与 xpath 的使用方法
2021/04/06 Python
vue+spring boot实现校验码功能
2021/05/27 Vue.js
python实现Nao机器人的单目测距
2021/09/04 Python
MySQL中B树索引和B+树索引的区别详解
2022/03/03 MySQL