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函数参数*args**kwargs用法实例
Dec 04 Python
把MySQL表结构映射为Python中的对象的教程
Apr 07 Python
用python结合jieba和wordcloud实现词云效果
Sep 05 Python
Python编程pygame模块实现移动的小车示例代码
Jan 03 Python
把pandas转换int型为str型的方法
Jan 29 Python
利用pyinstaller打包exe文件的基本教程
May 02 Python
对pyqt5多线程正确的开启姿势详解
Jun 14 Python
python实现列表中最大最小值输出的示例
Jul 09 Python
Python3 A*寻路算法实现方式
Dec 24 Python
python 解决print数组/矩阵无法完整输出的问题
Feb 19 Python
Python实现发票自动校核微信机器人的方法
May 22 Python
python 使用建议与技巧分享(四)
Aug 18 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
mysql 字段类型说明
2007/04/27 PHP
php实现利用phpexcel导出数据
2013/08/24 PHP
php版小黄鸡simsimi聊天机器人接口分享
2014/01/26 PHP
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
2017/09/02 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
自己使用jquery写的一个无缝滚动的插件
2014/04/30 Javascript
推荐9款炫酷的基于jquery的页面特效
2014/12/07 Javascript
jquery模拟进度条实现方法
2015/08/03 Javascript
JavaScript中的this引用(推荐)
2016/08/05 Javascript
js replace(a,b)之替换字符串中所有指定字符的方法
2016/08/17 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
2017/10/14 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
2019/01/18 jQuery
微信小程序 自定义复选框实现代码实例
2019/09/04 Javascript
解决微信小程序中的滚动穿透问题
2019/09/16 Javascript
vue双击事件2.0事件监听(点击-双击-鼠标事件)和事件修饰符操作
2020/07/27 Javascript
详解vue中使用transition和animation的实例代码
2020/12/12 Vue.js
Python简单实现enum功能的方法
2016/04/25 Python
python爬虫面试宝典(常见问题)
2018/03/02 Python
python网络爬虫学习笔记(1)
2018/04/09 Python
使用Python FastAPI构建Web服务的实现
2020/06/08 Python
Python过滤掉numpy.array中非nan数据实例
2020/06/08 Python
css3简单练习实现遨游浏览器logo的绘制
2013/01/30 HTML / CSS
英国最大的LED专业零售商:Led Hut
2018/03/16 全球购物
阿联酋彩妆品牌:OUD MILANO
2019/10/06 全球购物
Lentiamo荷兰:在线订购隐形眼镜、隐形眼镜液和太阳镜
2019/10/25 全球购物
俄罗斯香水和化妆品在线商店:Aroma-butik
2020/02/28 全球购物
Kingsoft金山公司C/C++笔试题
2016/05/10 面试题
农业资源与环境专业自荐信范文
2013/12/30 职场文书
给老师的道歉信
2014/01/11 职场文书
教育学习自我评价
2014/02/03 职场文书
乡镇办公室工作决心书
2014/03/11 职场文书
医院科室评语
2015/01/04 职场文书
挂职锻炼个人总结
2015/03/05 职场文书
观看焦裕禄观后感
2015/06/09 职场文书
js前端面试常见浏览器缓存强缓存及协商缓存实例
2022/06/21 Javascript