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 正则式 概述及常用字符
May 07 Python
python算法学习之桶排序算法实例(分块排序)
Dec 18 Python
python教程之用py2exe将PY文件转成EXE文件
Jun 12 Python
Pythont特殊语法filter,map,reduce,apply使用方法
Feb 27 Python
Python2与python3中 for 循环语句基础与实例分析
Nov 20 Python
Python用户推荐系统曼哈顿算法实现完整代码
Dec 01 Python
python使用xpath中遇到:到底是什么?
Jan 04 Python
Django 项目重命名的实现步骤解析
Aug 14 Python
Python处理session的方法整理
Aug 29 Python
python中有关时间日期格式转换问题
Dec 25 Python
Python把图片转化为pdf代码实例
Jul 28 Python
pycharm进入时每次都是insert模式的解决方式
Feb 05 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 飞信好友免费短信API接口开源版
2010/07/22 PHP
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
PHP中一些可以替代正则表达式函数的字符串操作函数
2014/11/17 PHP
php采用curl实现伪造IP来源的方法
2014/11/21 PHP
PHP抓取网页、解析HTML常用的方法总结
2015/07/01 PHP
php文档工具PHP Documentor安装与使用方法
2016/01/25 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
2017/11/24 PHP
niceTitle 基于jquery的超链接提示插件
2010/05/31 Javascript
jQuery实现行文字链接提示效果的方法
2015/03/10 Javascript
JavaScript中return false的用法
2015/03/12 Javascript
vue实现简单表格组件实例详解
2017/04/16 Javascript
Vue仿今日头条实例详解
2018/02/06 Javascript
Vue使用mixins实现压缩图片代码
2018/03/14 Javascript
使用js实现将后台传入的json数据放在前台显示
2018/08/06 Javascript
javascript实现考勤日历功能
2018/11/29 Javascript
js实现每日签到功能
2018/11/29 Javascript
Vue.js结合bootstrap前端实现分页和排序效果
2018/12/29 Javascript
详解在React-Native中持久化redux数据
2019/05/22 Javascript
JS面向对象编程基础篇(三) 继承操作实例详解
2020/03/03 Javascript
python编写的最短路径算法
2015/03/25 Python
python Matplotlib画图之调整字体大小的示例
2017/11/20 Python
opencv实现图片模糊和锐化操作
2018/11/19 Python
python找出一个列表中相同元素的多个索引实例
2019/06/11 Python
flask框架json数据的拿取和返回操作示例
2019/11/28 Python
在 Python 中使用 MQTT的方法
2020/08/18 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
Topshop法国官网:英国快速时尚品牌
2018/04/08 全球购物
屈臣氏菲律宾官网:Watsons菲律宾
2020/06/30 全球购物
红旗方阵解说词
2014/02/12 职场文书
中学生学雷锋演讲稿
2014/04/26 职场文书
综治宣传月活动总结
2014/04/28 职场文书
消防标语大全
2014/06/07 职场文书
国际经济贸易专业自荐信
2014/06/13 职场文书
2016年五一国际劳动节活动总结
2016/04/06 职场文书
CSS3 制作的悬停缩放特效
2021/04/13 HTML / CSS
JavaScript数组reduce()方法的语法与实例解析
2021/07/07 Javascript