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使用urllib2模块获取gravatar头像实例
Dec 18 Python
python求素数示例分享
Feb 16 Python
跟老齐学Python之网站的结构
Oct 24 Python
Python 使用os.remove删除文件夹时报错的解决方法
Jan 13 Python
浅谈用VSCode写python的正确姿势
Dec 16 Python
flask中主动抛出异常及统一异常处理代码示例
Jan 18 Python
python如何删除文件中重复的字段
Jul 16 Python
python matplotlib包图像配色方案分享
Mar 14 Python
python 实现两个线程交替执行
May 02 Python
Python3实现个位数字和十位数字对调, 其乘积不变
May 03 Python
python实现梯度下降算法的实例详解
Aug 17 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
Nov 20 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
smarty模板局部缓存方法使用示例
2014/06/17 PHP
PHP中绘制图像的一些函数总结
2014/11/19 PHP
php中stdClass的用法分析
2015/02/27 PHP
php简单实现多字节字符串翻转的方法
2015/03/31 PHP
学习php设计模式 php实现原型模式(prototype)
2015/12/07 PHP
Yii2.0实现的批量更新及批量插入功能示例
2019/01/29 PHP
javascript是怎么继承的介绍
2012/01/05 Javascript
jQuery切换所有复选框选中状态的方法
2015/07/02 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
2016/09/05 Javascript
js图片上传的封装代码
2017/08/01 Javascript
Vue 换肤的示例实践
2018/01/23 Javascript
深入理解ES6中let和闭包
2018/02/22 Javascript
基于vue-element组件实现音乐播放器功能
2018/05/06 Javascript
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
JS动态图片的实现方法完整示例
2020/01/13 Javascript
Vue父子组件传值的一些坑
2020/09/16 Javascript
Python多线程和队列操作实例
2015/06/21 Python
Python实现的双色球生成功能示例
2017/12/18 Python
Python使用requests发送POST请求实例代码
2018/01/25 Python
详谈python中冒号与逗号的区别
2018/04/18 Python
python3.5基于TCP实现文件传输
2020/03/20 Python
tensorflow更改变量的值实例
2018/07/30 Python
Python发展简史 Python来历
2019/05/14 Python
浅谈Python中threading join和setDaemon用法及区别说明
2020/05/02 Python
python调用API接口实现登陆短信验证
2020/05/10 Python
Pymysql实现往表中插入数据过程解析
2020/06/02 Python
CSS3实现超酷的黑猫警长首页
2016/04/26 HTML / CSS
马来西亚领先的在线礼品店:Giftr
2018/08/23 全球购物
日本热销NO.1胶原蛋白冻:Aishitoto爱希特多
2019/06/20 全球购物
酒店执行总经理岗位职责
2013/12/15 职场文书
妇产医师自荐信
2014/01/29 职场文书
团日活动总结怎么写
2014/06/25 职场文书
五月的鲜花活动方案
2014/08/21 职场文书
写给父母的感谢信
2015/01/22 职场文书
开工典礼致辞
2015/07/29 职场文书
SQLServer中JSON文档型数据的查询问题解决
2021/06/27 SQL Server