Python sqlalchemy小白筆記

2021-10-17 19:07:39 字數 2332 閱讀 5262

本來我用的pymysql的方式進行資料庫操作的。請參考

由於工作原因,組內建議用sqlalchemy。所以又開始學習sqlalchemy的使用。

本人以連線mysql為例

sqlalchemy 庫是 mike bayer 在 2005 年建立的,現在大大小小很多公司都在使用它。事實上,許多公司都把 sqlalchemy 看作在 python 中使用關係型資料庫的標準方式。

sqlalchemy 允許我們使用原始 sql 執行查詢,更鼓勵我們使用其提供的高階方法來查詢和更新資料庫,它提供的方法用起來很友好,而且具有鮮明的 python 風格。sqlalchemy 還提供了許多很棒的工具,通過這些工具,可以輕鬆地將應用程式中的類和物件同資料庫表對映起來,然後「忘掉它」,或者不斷回到模型調優效能上。

sqlalchemy 庫主要用於與各種資料庫互動,可使用一種類似於 python 類和語句的方式建立資料模型和查詢。它可用於連線大多數常見的資料庫,比如 postgres、mysql、sqlite、oracle 等。sqlalchemy 還提供了一種為其他關係型資料庫新增支援的方式。amazon redshift(使用 postgresql 自定義方言)就是 sqlalchemy 社群新增的資料庫支援的乙個很好的例子。

sqlalchemy 提供了兩種主要的使用模式——sql 表示式語言(通常稱為 core)和 orm,這為我們使用 sqlalchemy 提供了很大的靈活性。這兩種模式可以單獨使用,也可以一起使用,具體用法取決於個人喜好以及應用程式的需求。

sql 表示式語言允許我們以 python 方式使用常見的 sql 語句和表示式,它是對標準 sql 語言的簡單抽象。sql 表示式語言關注的是實際的資料庫模式,它在經過標準化之後為大量後端資料庫提供了一種一致性的語言。sql 表示式語言也是 sqlalchemy orm 的基礎。

sqlalchemy orm 類似於你在其他語言中遇到的物件關係對映(orm)。它關注應用程式的領域模型,並利用工作單元模式來維護物件狀態。它還在 sql 表示式語言之上做了進一步的抽象,使使用者能夠以慣用的方式工作。你可以組合或搭配使用 orm 與 sql 表示式語言,從而建立出功能更為強大的應用程式。

pip install sqlalchemy

本文使用的資料庫驅動是pymysql,所以還得安裝pymysql,執行pip install pymysql 

建立乙個 sqlalchemy 引擎。sqlalchemy 引擎為資料庫建立乙個公共介面來執行 sql 語句。這是通過包裝資料庫連線池和方言(我理解的是資料庫驅動)來實現的,這樣它們就可以一起工作,提供對後端資料庫的統一訪問。如此一來,我們的 python **就不必考慮資料庫之間或 dbapi 之間的差異了。

sqlalchemy 提供了乙個函式來建立引擎。在這個函式中,你可以指定連線字串,以及其他一些可選的關鍵字引數。連線字串是一種特殊格式的字串,包含如下資訊:

from sqlalchemy import create_engine

engine = create_engine('mysql+pymysql://youruser:yourpassword@yourip:yourport/yourschema?charset=utf8')

建立乙個connection連線到database

connection = engine.connect()
如果不建立這個connection,後面沒法執行sql語句

建立乙個metadata(元資料) 例項,可以把元資料看作一種table物件目錄,通過它的方法create_all()函式可以持久化資料,也就是建立資料表。

from sqlalchemy import metadata

metadata = metadata()

建立資料表

demo = table('demo', metadata,

column('id', interger(), primary_key=true),

column('name',string(25)

)

持久化資料表, 這樣就建立好了你的資料表了

metadata.create_all(engine)
插入資料

ins = demo.insert().values(

name='anne'

)connection.execute(ins)

js小白筆記

通過 jquery,您可以使用 hide 和 show 方法來隱藏和顯示 html 元素 通過 jquery,您可以使用 toggle 方法來切換 hide 和 show 方法。顯示被隱藏的元素,並隱藏已顯示的元素 通過 jquery,您可以實現元素的淡入淡出效果。jquery 擁有下面四種 fad...

Java小白筆記

1.常量,一般字母大寫,不能再賦值,final修飾符 final int value 10 2.與,短路與,或,短路或 短路主要乙個條件成立不必執行第二個,效率更高 3.三元運算子 k i 0?i i 如果i大於等於0,把i賦值給k,否則把負i賦值給k 4.final變數經常和static關鍵字一起...

dubbo 小白筆記

1.分布式就是指,很多伺服器一起做不一樣的是 每台伺服器做的事都不一樣 這些不一樣的事呢,組合起來就是一件大事,而集群呢就是很多伺服器做一樣的事.1.在這裡插入描述 provider 暴露服務的服務提供方 container 服務執行容器 consumer 呼叫遠端服務的服務消費方 registry...