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 22 Python
Python实现PS图像调整之对比度调整功能示例
Jan 26 Python
VScode编写第一个Python程序HelloWorld步骤
Apr 06 Python
Python基于Floyd算法求解最短路径距离问题实例详解
May 16 Python
Python安装与基本数据类型教程详解
May 29 Python
python实现通过flask和前端进行数据收发
Aug 22 Python
安装2019Pycharm最新版本的教程详解
Oct 22 Python
TensorFlow tf.nn.max_pool实现池化操作方式
Jan 04 Python
python修改linux中文件(文件夹)的权限属性操作
Mar 05 Python
django实现更改数据库某个字段以及字段段内数据
Mar 31 Python
Python用Jira库来操作Jira
Dec 28 Python
详解python的异常捕获
Mar 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 接口问题(php接口主要也就是运用curl,curl函数)
2013/07/01 PHP
thinkphp实现面包屑导航(当前位置)例子分享
2014/05/10 PHP
php无法连接mysql数据库的正确解决方法
2016/07/01 PHP
PHP观察者模式定义与用法实例分析
2019/03/22 PHP
禁止F5等快捷键的JS代码
2007/03/06 Javascript
Whatever:hover 无需javascript让IE支持丰富伪类
2010/06/29 Javascript
js 关键词高亮(根据ID/tag高亮关键字)案例介绍
2013/01/21 Javascript
jQuery拖动图片删除示例
2013/05/10 Javascript
javascript实现密码强度显示
2015/03/18 Javascript
JavaScript Date对象详解
2016/03/01 Javascript
用headjs来管理和加载js 提高网站加载速度
2016/11/29 Javascript
Javascript实现跨域后台设置拦截的方法详解
2017/08/04 Javascript
Angular2 http jsonp的实例详解
2017/08/31 Javascript
AngularJS 实现购物车全选反选功能
2017/10/24 Javascript
使用react实现手机号的数据同步显示功能的示例代码
2018/04/03 Javascript
jquery ajax加载数据前台渲染方式 不用for遍历的方法
2018/08/09 jQuery
angular实现input输入监听的示例
2018/08/31 Javascript
angularjs通过过滤器返回超链接的方法
2018/10/26 Javascript
react的滑动图片验证码组件的示例代码
2019/02/27 Javascript
[53:29]完美世界DOTA2联赛循环赛 DM vs Matador BO2第二场 11.04
2020/11/05 DOTA
Python访问MySQL封装的常用类实例
2014/11/11 Python
python实现域名系统(DNS)正向查询的方法
2016/04/19 Python
Python的requests网络编程包使用教程
2016/07/11 Python
基于Python解密仿射密码
2019/10/21 Python
numpy.array 操作使用简单总结
2019/11/08 Python
使用python实现希尔、计数、基数基础排序的代码
2019/12/25 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
2020/03/24 Python
Python类绑定方法及非绑定方法实例解析
2020/10/09 Python
HTML5 Canvas绘制五星红旗
2016/05/04 HTML / CSS
结对共建协议书
2014/08/20 职场文书
大学生自荐材料范文
2014/12/30 职场文书
2015年效能监察工作总结
2015/04/23 职场文书
2015年反洗钱工作总结
2015/04/25 职场文书
2016党员学习《反对自由主义》心得体会
2016/01/22 职场文书
大学生创业计划书
2019/06/24 职场文书
SQL SERVER中常用日期函数的具体使用
2021/04/08 SQL Server