python淺學筆記18 訪問資料庫

2021-09-23 23:56:14 字數 825 閱讀 9877

雖然以前用過資料庫,也學過,但是一直做前端的工作卻記不清具體用法了。

資料 記憶體 <–> 磁碟

如果資料過大如藍光光碟 40gb的資料,根本無法全部讀入記憶體。

為了便於程式能儲存和讀取資料,出現了資料庫。

歷史,1950出現,經歷了網狀資料庫,層次資料庫,以20世紀70年代關係模型(複雜的資料理論)為基礎出現現在廣泛使用的關聯式資料庫。

一對多的關係

nosql資料庫 資料和規模超過關聯式資料庫

使用最廣泛。sqlite是輕量級的,可嵌入的,但不能承受高併發訪問,適合桌面和移動應用。mysql是為伺服器端設計的可以支援高併發訪問,當然占用記憶體也大。

mysql內部有多種資料庫引擎,最常用的是支援資料庫事物的innodb。

安裝資料庫

編碼utf8mb4 最新的unicode標準,可以顯示emoji字元。

安裝驅動

mysql-connector-python

mysql-connector

連線資料庫,跟sqlite類似(python 的 db-api都是通用的)

connect

cursor()

conn.commit()

cursor.close()

conn.close()

表裡每行資料返回是乙個tuple。不容易看出表結構,如果用class表示就更容易看出表結構了。orm框架sqlaichemy把關聯式資料庫的表結構對映到物件上。

需要初始化sqlalchemy

初始化基類,然後定義每個表的類

session的方法操作類引數

關閉session,(session視為資料庫連線)

python淺學筆記2 函式

漢諾塔 時間戳 2019年3月6日23 38 55 常用函式呼叫 abs max float str bool hex isinstance x,int,str 定義乙個函式 使用關鍵字 def 例如 def my abs x if x return x else return x如果沒有retur...

python淺學筆記20 非同步IO

cpu速度遠遠快於 網路 磁碟 io 在乙個執行緒裡,io會阻塞其它 的執行。為了不阻塞,就要用多執行緒或多程序,雖然併發可以解決這個問題,但是系統不能無上限的增加執行緒,系統切換執行緒的開銷也很大 另一種解決問題的方法非同步io,cpu負責 的執行,io操作由io裝置執行,負責開啟乙個io操作,並...

python淺學筆記9 IO程式設計

stringio和bytesio 操作檔案和目錄 序列化 pickling name input output face 磁碟,網路 model stream 流 from to 記憶體 time stop?同步 非同步 由於非同步io比較複雜,本章都是同步io,非同步io在後邊網路伺服器提及。開啟...