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获取文件版本信息、公司名和产品名的方法
Oct 05 Python
Python获取文件ssdeep值的方法
Oct 05 Python
python3实现UDP协议的服务器和客户端
Jun 14 Python
浅谈python中的__init__、__new__和__call__方法
Jul 18 Python
一百多行python代码实现抢票助手
Sep 25 Python
对python操作kafka写入json数据的简单demo分享
Dec 27 Python
Python实现将HTML转成PDF的方法分析
May 04 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
Aug 05 Python
对Django url的几种使用方式详解
Aug 06 Python
Python使用字典实现的简单记事本功能示例
Aug 15 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
Jun 08 Python
python regex库实例用法总结
Jan 03 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微信支付接口开发程序
2016/08/02 PHP
laravel 事件/监听器实例代码
2019/04/12 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
Firefox 无法获取cssRules 的解决办法
2006/10/11 Javascript
javascript call和apply方法
2008/11/24 Javascript
jQuery语法总结和注意事项小结
2012/11/11 Javascript
用RadioButten或CheckBox实现div的显示与隐藏
2013/09/21 Javascript
jQuery照片伸缩效果不影响其他元素的布局
2014/05/09 Javascript
JavaScript验证电子邮箱的函数
2014/08/22 Javascript
jquery实现动态改变div宽度和高度
2015/05/08 Javascript
jquery实现的Accordion折叠面板效果代码
2015/09/02 Javascript
理解javascript中的闭包
2017/01/11 Javascript
用jQuery旋转插件jqueryrotate制作转盘抽奖
2017/02/10 Javascript
vue绑定class与行间样式style详解
2017/08/16 Javascript
实时监控input框,实现输入框与下拉框联动的实例
2018/01/23 Javascript
vue 实现通过手机发送短信验证码注册功能
2018/04/19 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
2018/05/02 Javascript
说说node中的可读流和可写流的区别
2018/06/01 Javascript
Vue 实现拖动滑块验证功能(只有css+js没有后台验证步骤)
2018/08/24 Javascript
150行代码带你实现微信小程序中的数据侦听
2019/05/17 Javascript
Vue使用v-viewer实现图片预览
2020/10/21 Javascript
Python Paramiko模块的安装与使用详解
2016/11/18 Python
windows下python和pip安装教程
2018/05/25 Python
PYTHON发送邮件YAGMAIL的简单实现解析
2019/10/28 Python
Python文件读写w+和r+区别解析
2020/03/26 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
2020/05/26 Python
CSS3+DIV实现漂亮的动画彩色标签
2016/06/16 HTML / CSS
安全教育心得体会
2013/12/29 职场文书
高中地理教学反思
2014/01/29 职场文书
经贸韩语专业大学生职业规划
2014/02/14 职场文书
会计学专业求职信
2014/07/17 职场文书
班主任与学生安全责任书
2014/07/25 职场文书
2015年文员个人工作总结
2015/04/09 职场文书
SQL Server2019数据库之简单子查询的具有方法
2021/04/27 SQL Server
mysql sum(if())和count(if())的用法说明
2022/01/18 MySQL
PostgreSQL怎么创建分区表详解
2022/06/25 PostgreSQL