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.pswp.cn/news/271116.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/271116.shtml
英文地址,請注明出處:http://en.pswp.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、分別測試各個模塊,再把這些模塊組合起來進行整體測試,也就是非增量式集成。特點:可以對模塊進行并行測試,能充分利用人力&…