欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SQLAlchemy的主要組件詳細講解

 更新時間:2023年08月09日 11:11:42   作者:2301_78316786  
SQLAlchemy是一個基于Python實現的ORM框架,能滿足大多數數據庫操作需求,同時支持多種數據庫引擎(SQLite,MySQL,Postgresql,Oracle等),這篇文章主要介紹了SQLAlchemy的主要組件有哪些,本文給大家介紹的非常詳細,對大家的學習具有一定的參考借鑒價值,需要的朋友可以參考

 SQLAlchemy介紹

SQLAlchemy是一個基于Python實現的ORM框架,能滿足大多數數據庫操作需求,同時支持多種數據庫引擎(SQLite,MySQL,Postgresql,Oracle等)

SQLAlchemy組件中最有名的是它的對象關系映射器(ORM)

ORM 將數據庫中的表與面向對象語言中的類建立了一種對應關系

ORM將一個Python的對象映射為數據庫中的一張關系表。它將SQL封裝起來,程序員不再需要關心數據庫的具體操作,只需要專注于自己本身代碼和業(yè)務邏輯的實現

對數據表的抽象,允許開發(fā)人員首先考慮數據模型,同時使得Python程序更加簡潔易讀。
對各種數據庫引擎的封裝,使得開發(fā)人員在面對不同數據庫時,只需要做簡單修改即可,工作量大大減少。

整體的實現過程就是:Python代碼,通過ORM轉換成SQL語句,再通過pymysql去實際操作數據庫,最典型的ORM就是我們的SQLAlchemy

SQLAlchemy的主要組件有哪些?

SQLAlchemy,聽名字就知道是個把SQL用魔法驅動的庫。它有很多組件,讓我一個個給你揭曉。首先,它的核心是Engine,相當于一個數據庫的驅動程序,負責和數據庫進行交流。比如你想從數據庫讀取數據,你只需要告訴Engine你要什么,Engine就會幫你搞到手。

例如,你想要從名為“users”的表讀取所有數據,代碼可能是這樣的:

from sqlalchemy import create_engine  
# 創(chuàng)建一個引擎  
engine = create_engine('sqlite:///example.db')  
# 打開一個數據庫連接  
with engine.connect() as connection:  
    # 創(chuàng)建一個查詢,這里我們查詢 "users" 表中的所有數據  
    query = connection.query(users)  
    # 執(zhí)行查詢并打印結果  
    for user in query:  
        print(user)

但是,SQLAlchemy更強大的地方在于,它可以把復雜的SQL查詢用Python的方式寫出來。比如,你想要查詢“users”表中年齡大于18歲的女性用戶,你可以像這樣寫:

from sqlalchemy import create_engine, Column, Integer, String, func  
from sqlalchemy.orm import sessionmaker  
from sqlalchemy.ext.declarative import declarative_base  
# 創(chuàng)建ORM對象的基礎  
Base = declarative_base()  
# 定義一個User對象  
class User(Base):  
    __tablename__ = 'users'  
    id = Column(Integer, primary_key=True)  
    name = Column(String)  
    age = Column(Integer)  
    gender = Column(String)  
# 創(chuàng)建一個引擎  
engine = create_engine('sqlite:///example.db')  
# 創(chuàng)建Session類  
Session = sessionmaker(bind=engine)  
# 創(chuàng)建一個新的Session對象  
session = Session()  
# 查詢所有年齡大于18歲的女性用戶  
for user in session.query(User).filter(User.age > 18, User.gender == 'female'):  
    print(user.id, user.name, user.age, user.gender)

是不是很酷?不過要注意,上面的代碼需要先建立一個數據庫和相應的表。你可以用SQLAlchemy的DDL(數據庫定義語言)來創(chuàng)建表。比如:

from sqlalchemy.sql import table, column  
users = table('users',  
             column('id', Integer),  
             column('name', String),  
             column('age', Integer),  
             column('gender', String),  
             )

然后可以用SQLAlchemy的DDL對象的create方法來創(chuàng)建表:

from sqlalchemy import create_engine  
engine = create_engine('sqlite:///example.db')  
with engine.connect() as connection:  
    connection.execute(users.create)

SQLAlchemy還有許多其他組件,比如SQL表達式語言、ORM、Schema、Type System等等,這些都是SQLAlchemy提供的功能。但這些功能并不是每個人都需要用到的。你可能需要的是它的核心——Engine。如果你想要更進一步,可以試試它的SQL表達式語言和ORM。如果你是一個數據庫研究員,你可能需要的是它的Schema和Type System??傊琒QLAlchemy是一個非常強大的庫,幾乎可以處理所有和SQL有關的任務。

除了上面提到的組件,SQLAlchemy還提供了許多其他的功能和工具,下面簡單列舉一些:

事務處理:SQLAlchemy提供了事務處理的功能,可以方便地進行數據庫事務的操作和管理。
連接池:SQLAlchemy支持多種數據庫連接池,可以有效地管理數據庫連接,提高數據庫的性能和可靠性。
SQL遷移:SQLAlchemy提供了SQL遷移工具,可以方便地進行數據庫表的遷移和版本控制。
查詢構建器:SQLAlchemy提供了查詢構建器,可以用Python語言的方式構建SQL查詢,更加靈活和方便。
ORM映射器:SQLAlchemy的ORM組件提供了映射器,可以將Python對象映射到數據庫中的表,實現對象關系映射(ORM)的功能。
事件系統(tǒng):SQLAlchemy提供了事件系統(tǒng),可以方便地對數據庫操作進行監(jiān)控和分析,實現自定義的邏輯和功能。
下面舉幾個例子來說明SQLAlchemy的用法:

查詢數據庫:

from sqlalchemy import create_engine  
from sqlalchemy.orm import sessionmaker  
from sqlalchemy.ext.declarative import declarative_base  
# 創(chuàng)建引擎和會話  
engine = create_engine('sqlite:///example.db')  
Session = sessionmaker(bind=engine)  
session = Session()  
# 查詢所有用戶信息  
users = session.query(User).all()  
for user in users:  
    print(user.id, user.name, user.age)

條件查詢:

from sqlalchemy import create_engine, func  
from sqlalchemy.orm import sessionmaker  
from sqlalchemy.ext.declarative import declarative_base  
# 創(chuàng)建引擎和會話  
engine = create_engine('sqlite:///example.db')  
Session = sessionmaker(bind=engine)  
session = Session()  
# 查詢年齡大于18歲的女性用戶信息  
female_users = session.query(User).filter(User.gender == 'female', User.age > 18).all()  
for user in female_users:  
    print(user.id, user.name, user.age)

到此這篇關于SQLAlchemy的主要組件有哪些?的文章就介紹到這了,更多相關SQLAlchemy組件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • pytorch加載預訓練模型與自己模型不匹配的解決方案

    pytorch加載預訓練模型與自己模型不匹配的解決方案

    這篇文章主要介紹了pytorch加載預訓練模型與自己模型不匹配的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • PyQt5中QCommandLinkButton的詳細教程與應用實戰(zhàn)

    PyQt5中QCommandLinkButton的詳細教程與應用實戰(zhàn)

    在PyQt5中,QCommandLinkButton是一個特殊的按鈕控件,它最初在Windows Vista中引入,并因其獨特的外觀和功能在GUI應用程序中得到了廣泛應用,本教程將結合實際案例,詳細介紹QCommandLinkButton在PyQt5中的用法,需要的朋友可以參考下
    2024-07-07
  • 解決Python import .pyd 可能遇到路徑的問題

    解決Python import .pyd 可能遇到路徑的問題

    這篇文章主要介紹了解決Python import .pyd 可能遇到路徑的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python通過Selenium獲取Web頁面信息的全指南

    Python通過Selenium獲取Web頁面信息的全指南

    Selenium?是一個功能強大的自動化測試工具,但它也可以用于?web?頁面信息的抓取和分析,下面小編就來和大家詳細介紹一下具體是實現方法吧
    2025-04-04
  • 淺談python 調用open()打開文件時路徑出錯的原因

    淺談python 調用open()打開文件時路徑出錯的原因

    這篇文章主要介紹了淺談python 調用open()打開文件時路徑出錯的原因,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python通過colorama模塊在控制臺輸出彩色文字的方法

    python通過colorama模塊在控制臺輸出彩色文字的方法

    這篇文章主要介紹了python通過colorama模塊在控制臺輸出彩色文字的方法,實例分析了colorama模塊的功能及相關使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • python問題匯總之pycharm查找不到安裝的庫解決

    python問題匯總之pycharm查找不到安裝的庫解決

    這篇文章主要給大家介紹了關于python問題匯總之pycharm查找不到安裝庫的解決方法,PyCharm是一款非常流行的Python集成開發(fā)環(huán)境(IDE),它提供了豐富的功能和插件,可以幫助程序員更高效地編寫Python代碼,需要的朋友可以參考下
    2023-09-09
  • Python?matplotlib底層原理解析

    Python?matplotlib底層原理解析

    這篇文章主要介紹了Python?matplotlib底層原理,下面文章圍繞Python?matplotlib底層原理的相關資料展開詳細內容,具有一定的參考價值,需要的朋友可以參考下
    2021-12-12
  • Python+OpenCV手勢檢測與識別Mediapipe基礎篇

    Python+OpenCV手勢檢測與識別Mediapipe基礎篇

    網上搜到了一些關于手勢處理的實驗,我在這兒簡單的實現一下,下面這篇文章主要給大家介紹了關于Python+OpenCV手勢檢測與識別Mediapipe基礎篇的相關資料,需要的朋友可以參考下
    2022-12-12
  • python清洗疫情歷史數據的過程詳解

    python清洗疫情歷史數據的過程詳解

    這篇文章主要介紹了python清洗疫情歷史數據,包括數據獲取方法及使用python讀取csv的詳細代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05

最新評論