Python 運算元據庫之 records

2021-09-28 15:50:29 字數 4226 閱讀 8427

今天要介紹的這個python第三方庫非常厲害,完美操作各種資料庫。名字叫 records, 在網上很少有這個庫的相關資料,但是在開源社群可是很火熱的哦。如果這還不能打消你的顧慮,再告訴你一件事:如果你用 python 程式設計,你一定聽過 requests, 這兩個庫是同乙個作者寫的。.

records 包參考資料:records pypi 、 github

安裝

# 安裝 python-records 

pip install records

使用步驟:

連線資料庫,返回 db 資料庫物件。

db 物件執行 sql 語句。

demo:

import records

# 獲取資料庫

#pool_recycle=true 解決:mysql server has gone away

db = records.database(

'mysql+pymysql://username:passwd@localhost:port/dbname'

)# 查詢

rows = db.query(

'select * from tablename'

)

獲取資料庫的格式是標準的 url 格式,如果使用的不是 mysql 資料庫,只需要換掉資料庫型別就可以了:

# 連線資料庫

db = records.database(

'mysql+pymysql://root:password@localhost:3306/dbname?charset=utf8'

)# 建立表

sql_create_table =

"""create table if not exists test4(

name varchar(20),

age int(11)

) default charset=utf8 ;"""

db.query(sql_create_table)

records 支援使用:variable定義變數,通過引數傳入完成動態傳值,在需要動態載入資料的時候非常有用:

user =

db.query(

'insert into test4(name,age) values (:name, :age)'

,**user)

sql 語句在執行多條資料操作的時候非常不方便,尤其是當值還是變化的時候。 records 提供的 bulk_query 方法能快捷的插入和更新多條資料:

users =[,

,]db.bulk_query(

'insert into test4(name,age) values (:name, :age)'

, users)

查詢到資料以後,可以通過 all() 方法獲取所有的記錄,支援 3 種型別。

預設是自己封裝的recordcollection 物件

也可以通過as_dict=true引數轉成字典形式。

可以通過as_ordereddict=true轉成排序字典形式。

rows = db.query(

'select * from test4;'

)# 得到所有資料

print

(rows.

all())

# 字典形式展示

print

(rows.

all(as_dict=

true))

# 獲取第乙個

print

(rows.first())

# 以字典形式獲取第乙個

print

(rows.first(as_dict=

true))

# 排序字典

print

(rows.first(as_ordereddict=

true))

# 查詢唯一的乙個

print

(rows.one(

))

資料庫事務是經常需要使用到的資料庫操作,他通常是為了保持資料原子性和一致性。

比如乙個轉賬的資料庫操作:

從 webben 賬號中讀取餘額 ;

對 webben 賬號餘額減去轉賬 - 400;

從 weibin 賬號中把餘額讀出來;

對 weibin 賬號做加法操作(+400)。

我們必須保證這 4 步同時執行成功,要麼同時都不成功。如果前 2 步已經執行成功,但是到第 3 步發生了錯誤導致後面都不能執行,就會出現問題:webben的賬號被扣了錢,但是 weibin的賬號卻沒有加錢。

通過資料庫事務就能避免這種情況。

with db.transaction(

)as tx:

user =

tx.query(

'insert into test4(name,age) values (:name, :age)'

,**user)

# 下面是錯誤的 sql 語句,有錯誤,則上面的 sql 語句不會成功執行。

tx.query(

'webben'

)

資料庫資料得到以後還需要進一步的操作,比如儲存起來。

rows = db.query(

'select * from test4;'

)json_rows = rows.export(

'webben'

)print

(json_rows)

最常用的是如果需要各種各樣的報表,需要放到 excel 檔案中儲存起來。

rows = db.query(

'select * from test4;'

)with

open

('users.xlsx'

,'wb'

)as f:

f.write(rows.export(

'xlsx'

))

匯出的資料效果:

Python之運算元據庫

python中操作mysql資料需要安裝乙個第三方模組。安裝方式 在python中執行pip install pymysql 運算元據庫例項 import pymysql 開啟資料庫連線 host host 資料庫位址118.20.3.20 user user 資料庫名 password passw...

python運算元據庫

資料庫的操作在現在的python裡面已經變得十分的好用,有了一套api標準.下面的就是講講如何的去使用這套框架定義.此框架包含以下部分 connect parameters.其中的引數格式如下 dsn 資料來源名稱 user 使用者名稱 可選 password 密碼 可選 host 主機名 可選 d...

python 運算元據庫

目的 通過excel定義檢查指標項,然後通過python讀取指標,通過oracle sqlplus工具去執行獲取具體巡檢結果。unicode utf 8 coding utf 8 import os import sys import xlrd import paramiko reload sys ...