python 更新数据库历史_python 实现数据库中数据添加、查询与更新的示例代码

一、前言

最近做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 数据库添加、查询与更新的资料请关注脚本之家其它相关文章!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271116.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git冲突“accept theirs”和“accept yours”

Accept Yours 就是直接选取本地的代码,覆盖掉远程仓库的 Accept Theirs 是直接选取远程仓库的,覆盖掉自己本地的 我们选择Merge,自己手动行进选择、修改。 这里左边部分是你本地仓库的代码,右边部分是远程仓库的代码,中间的res…

系统实施基础:系统实施的相关知识介绍

1、系统实施的目的系统实施属于新系统开发工作的最后一个阶段,属于交付系统给客户的最后阶段。2、系统实施的任务硬件准备:按照总体设计方案准备服务器、配置网络系统。主要包括计算机主机/云服务器、输入输出设备、存储设备、通信设备等。软件准备&…

线程同步以及yield()、wait()、Notify()、Notifyall()

一、线程同步 1、线程同步的目的是为了保护多个线程访问一个资源时对资源的破坏。2、线程同步方法是通过锁来实现,每个对象都有切仅有一个锁,这个锁与一个特定的对象关联,线程一旦获取了对象锁,其他访问该对象的线程就无法再访问该…

面试:整理面试中常被问到的8种数据结构

数据结构是一种特殊的组织和存储数据的方式,可以使我们可以更高效地对存储的数据执行操作。数据结构在计算机科学和软件工程领域具有广泛而多样的用途。几乎所有已开发的程序或软件系统都使用数据结构。此外,数据结构属于计算机科学和软件工程的基础。当…

python绘制繁花曲线代码_使用python和pygame绘制繁花曲线的方法

前段时间看了一期《最强大脑》,里面各种繁花曲线组合成了非常美丽的图形,一时心血来潮,想尝试自己用代码绘制繁花曲线,想怎么组合就怎么组合。真实的繁花曲线使用一种称为繁花曲线规的小玩意绘制,繁花曲线规由相互契合…

Axure原型制作规范

一、 名词定义: Sitemap 导航图Widgets 组件Master 库Label 控件名Interactions 交互动作Annotations 注释Location and size 位置和尺寸二、 Widgets规范 本站常用widgets规范:命名规范:制定命名规范从而方便搜索和升级。 a. 全站使用&#…

系统测试相关知识笔记

1、系统测试的意义系统测试是为了发现系统中的错误而执行程序的过程,发现系统中存在的问题,及时处理掉,从而规避项目后续阶段顺利推进的风险、和高质量的软件交付给客户。2、系统测试的目的希望以最少的人力和时间发现潜在的各种错误和缺陷。…

最小生成树练习1(克鲁斯卡尔算法Kruskal)

今天刷一下水题练手入门,明天继续。 poj1861 Network(最小生成树)新手入门题。 题意:输出连接方案中最长的单根网线长度(必须使这个值是所有方案中最小的),然后输出方案。 题解:本题…

java变量不声明可以直接使用吗_我们可以在不使用Java进行初始化的情况下声明最终变量吗?...

在Java中,final是可与字段类和方法一起使用的access修饰符。当一个方法为final时,它不能被覆盖。当变量为最终变量时,其值无法进一步修改。当类结束时,不能扩展。无需初始化即可声明最终变量如果稍后声明了最终变量,则…

系统测试:单元测试相关知识笔记

一、单元测试概念单元测试也成为模块测试,在模块编写完成且无编译错误后就可以进行。单元测试侧重模块中的内部处理逻辑和数据结构。如果采用机器测试,一般用白盒测试法。二、单元测试检查模块特征1、模块接口模块接口保证了测试模块数据流可以正确地流入…

跨网段远程调试vs_如何提高后台服务应用问题的排查效率?日志 VS 远程调试

转眼间,距离Jerry最近一篇文章推送已经过去了一个多月的时间了。公众号更新的频率降低,不是因为Jerry偷懒,而是由于从春节过后,我所在的SAP成都研究院数字创新空间整个团队,一直在忙一个5月份需要交付的项目上。Jerry每…

计算机硬件知识:BIOS、EFI与UEFI详解!

本文估计很多小白看不懂,但是还是建议你硬着头皮看完,这篇文章主要讲解了这几种“BIOS”的启动方式,对电脑启动问题判断的理解会有益处。BIOS是个程序,存储在BIOS芯片中,而现在的新式电脑用的基本都是UEFI启动&#xf…

java pdf 导出下载_Java+PDF模板导出成pdf文件,并下载

1,根据前人经验,熟悉完成基础操作:https://www.cnblogs.com/wangpeng00700/p/8418594.html?tdsourcetags_pcqq_aiomsg2,根据链接中操作完成之后,在本地生成pdf文件已经没有问题了。但如果放到,Linux服务器…

在db2数据库上模拟死锁场景 还是z上的

如果条件允许,起两个线程互相抢资源就行了,但问题是,时间上还需要同步,要做到完美控制,还得加其他逻辑,忒费事,所以可以用下面的办法: 在目标表上直接加个锁……简单,粗暴…

条件随机场 python_用条件随机场做网络小说命名实体识别

一直想用统计学习方法来改善拨云搜索,这次先在命名实体上小小尝试一下。线性链条件随机场对于无向图中的节点,定义一组特征函数,使其状态仅受邻近节点和观测序列的影响。在标注任务中,节点只有前后两个邻近节点,即线性…

项目开发基础:常用测试方法介绍

1、集成测试集成测试就是把模块按照设计说明书的要求组合起来进行测试。1.1、集成测试方法:a、分别测试各个模块,再把这些模块组合起来进行整体测试,也就是非增量式集成。特点:可以对模块进行并行测试,能充分利用人力&…