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中的JSON模块
Apr 08 Python
Python的Django框架中的URL配置与松耦合
Jul 15 Python
Python实现GUI学生信息管理系统
Apr 05 Python
python 多个参数不为空校验方法
Feb 14 Python
Django页面数据的缓存与使用的具体方法
Apr 23 Python
对PyQt5的输入对话框使用(QInputDialog)详解
Jun 25 Python
Python企业编码生成系统之主程序模块设计详解
Jul 26 Python
解决django-xadmin列表页filter关联对象搜索问题
Nov 15 Python
django框架中ajax的使用及避开CSRF 验证的方式详解
Dec 11 Python
python实现扫雷游戏
Mar 03 Python
Python函数参数定义及传递方式解析
Jun 10 Python
Python中Permission denied的解决方案
Apr 02 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
phpmyadmin导入(import)文件限制的解决办法
2009/12/11 PHP
php empty() 检查一个变量是否为空
2011/11/10 PHP
php模板函数 正则实现代码
2012/10/15 PHP
PHP中header和session_start前不能有输出原因分析
2013/01/11 PHP
PHP循环遍历数组的3种方法list()、each()和while总结
2014/11/19 PHP
PHP使用ODBC连接数据库的方法
2015/07/18 PHP
使用PHPCMS搭建wap手机网站
2015/09/20 PHP
PHP+Mysql分布式事务与解决方案深入理解
2021/02/27 PHP
JavaScript 动态创建VML的方法
2009/10/14 Javascript
JavaScript限定复选框的选择个数示例代码
2013/08/25 Javascript
jquery制作搜狐快站页面效果示例分享
2014/02/21 Javascript
基于jQuery实现简单的折叠菜单效果
2015/11/23 Javascript
JavaScript Date对象详解
2016/03/01 Javascript
jQuery页面加载初始化的3种方法(推荐)
2016/06/02 Javascript
React快速入门教程
2017/01/17 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
2017/03/15 Javascript
Bootstrap Table使用整理(三)
2017/06/09 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
2017/09/03 jQuery
vue中v-model动态生成的实例详解
2017/10/27 Javascript
使用webpack-dev-server处理跨域请求的方法
2018/04/18 Javascript
vue-cli 引入、配置axios的方法
2018/05/08 Javascript
JS中FileReader类实现文件上传及时预览功能
2020/03/27 Javascript
[48:22]VGJ.S vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python连接MySQL并使用fetchall()方法过滤特殊字符
2016/03/13 Python
使用 Python 实现微信公众号粉丝迁移流程
2018/01/03 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
2019/02/26 Python
深入了解python列表(LIST)
2020/06/08 Python
美津浓巴西官方网站:Mizuno巴西
2019/07/24 全球购物
竞职演讲稿范文
2014/01/11 职场文书
企业年度评优方案
2014/06/02 职场文书
本科应届生自荐信
2014/06/29 职场文书
班子个人四风问题整改措施
2014/10/04 职场文书
汶川大地震感悟
2015/08/10 职场文书
Sql-Server数据库单表查询 4.3实验课
2021/04/05 SQL Server
Mysql排序的特性详情
2021/11/01 MySQL
选购到合适的激光打印机
2022/04/21 数码科技