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打开网页和暂停实例
Sep 30 Python
Python的类实例属性访问规则探讨
Jan 30 Python
几个提升Python运行效率的方法之间的对比
Apr 03 Python
Python3.2中的字符串函数学习总结
Apr 23 Python
Python编写生成验证码的脚本的教程
May 04 Python
Python中特殊函数集锦
Jul 27 Python
python实现SMTP邮件发送功能
Jun 16 Python
Python中使用asyncio 封装文件读写
Sep 11 Python
Python矩阵常见运算操作实例总结
Sep 29 Python
把django中admin后台界面的英文修改为中文显示的方法
Jul 26 Python
TensorFlow MNIST手写数据集的实现方法
Feb 05 Python
new_zeros() pytorch版本的转换方式
Feb 18 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 空格,换行,跳格使用说明
2009/12/18 PHP
PHP使用内置dir类实现目录遍历删除
2015/03/31 PHP
Laravel程序架构设计思路之使用动作类
2018/06/07 PHP
如何实现动态删除javascript函数
2007/05/27 Javascript
不一样的文字闪烁 轮番闪烁
2009/11/11 Javascript
让div层随鼠标移动的实现代码 ie ff
2009/12/18 Javascript
Extjs中ComboBoxTree实现的下拉框树效果(自写)
2013/05/28 Javascript
javascript读取xml实现javascript分页
2013/12/13 Javascript
javascript创建数组之联合数组的使用方法示例
2013/12/26 Javascript
jQuery on()方法使用技巧详解
2015/04/16 Javascript
JavaScript中判断函数、变量是否存在
2015/06/10 Javascript
jQuery支持添加事件的日历特效代码分享(3种样式)
2015/08/24 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
2016/01/09 Javascript
Javascript简写条件语句(推荐)
2016/06/12 Javascript
layer实现弹窗提交信息
2016/12/12 Javascript
详解webpack自动生成html页面
2017/06/29 Javascript
基于js原生和ajax的get和post方法以及jsonp的原生写法实例
2017/10/16 Javascript
浅谈使用mpvue开发小程序需要注意和了解的知识点
2018/05/23 Javascript
vue踩坑记录之数组定义和赋值问题
2019/03/20 Javascript
详解Vue中组件传值的多重实现方式
2019/08/16 Javascript
Vue使用mixin分发组件的可复用功能
2019/09/01 Javascript
Postman环境变量全局变量使用方法详解
2020/08/13 Javascript
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
Python实现读取文件最后n行的方法
2017/02/23 Python
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
2019/01/19 Python
Python实现数值积分方式
2019/11/20 Python
python代码打印100-999之间的回文数示例
2019/11/24 Python
css3中仿放大镜效果的几种方式原理解析
2020/12/03 HTML / CSS
新西兰便宜隐形眼镜购买网站:QUICKLENS New Zealand
2019/03/02 全球购物
白俄罗斯女装和针织品网上商店:Presli.by
2019/10/13 全球购物
金蝶的一道SQL笔试题
2012/12/18 面试题
中专自我鉴定范文
2013/10/16 职场文书
春节联欢晚会主持词范文
2014/03/24 职场文书
街道社区活动报告
2015/02/05 职场文书
齐云山导游词
2015/02/06 职场文书