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的keyword模块用法实例分析
Jun 30 Python
Linux下将Python的Django项目部署到Apache服务器
Dec 24 Python
Python中functools模块的常用函数解析
Jun 30 Python
Python信息抽取之乱码解决办法
Jun 29 Python
Python正则表达式知识汇总
Sep 22 Python
Tensorflow实现卷积神经网络的详细代码
May 24 Python
Python利用Django如何写restful api接口详解
Jun 08 Python
Python学习笔记之While循环用法分析
Aug 14 Python
MNIST数据集转化为二维图片的实现示例
Jan 10 Python
python 函数中的参数类型
Feb 11 Python
numpy中生成随机数的几种常用函数(小结)
Aug 18 Python
python 实现Harris角点检测算法
Dec 11 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文件缓存类汇总
2014/11/21 PHP
由php中字符offset特征造成的绕过漏洞详解
2017/07/07 PHP
详解将数据从Laravel传送到vue的四种方式
2019/10/16 PHP
JS 两个字符串时间的天数差计算
2013/08/25 Javascript
javascript中使用正则计算中文长度的例子
2014/04/29 Javascript
如何获取元素的最终background-color
2017/02/06 Javascript
BootStrap实现文件上传并带有进度条效果
2017/09/11 Javascript
浅谈vue中数据双向绑定的实现原理
2017/09/14 Javascript
EasyUI实现下拉框多选功能
2017/11/07 Javascript
Angular中支持SCSS的方法
2017/11/18 Javascript
10分钟上手vue-cli 3.0 入门介绍
2018/04/04 Javascript
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
vue中v-text / v-html使用实例代码详解
2019/04/02 Javascript
微信小程序实现搜索历史功能
2020/03/26 Javascript
Vue CLI3中使用compass normalize的方法
2019/05/30 Javascript
Vue项目总结之webpack常规打包优化方案
2019/06/06 Javascript
Layui选项卡制作历史浏览记录的方法
2019/09/28 Javascript
js单线程的本质 Event Loop解析
2019/10/29 Javascript
微信公众号H5之微信分享常见错误和问题(小结)
2019/11/14 Javascript
编写v-for循环的技巧汇总
2020/12/01 Javascript
Python 条件判断的缩写方法
2008/09/06 Python
python实现应用程序在右键菜单中添加打开方式功能
2017/01/09 Python
Python图形绘制操作之正弦曲线实现方法分析
2017/12/25 Python
Python3一行代码实现图片文字识别的示例
2018/01/15 Python
将python文件打包成EXE应用程序的方法
2019/05/22 Python
python输出电脑上所有的串口名的方法
2019/07/02 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
2020/03/28 Python
CSS3+HTML5+JS 实现一个块的收缩与展开动画效果
2020/11/17 HTML / CSS
多视角3D可旋转的HTML5 Logo动画
2016/03/02 HTML / CSS
中年人生感言
2014/02/04 职场文书
道路建设实施方案
2014/03/18 职场文书
《猴子种果树》教学反思
2014/04/26 职场文书
2014离婚协议书范文(3篇)
2014/11/29 职场文书
幼儿园秋季开学通知
2015/07/16 职场文书
导游词之清晏园
2019/11/22 职场文书
如何基于python实现单目三维重建详解
2022/06/25 Python