首頁 > 後端開發 > Python教學 > 如何在Python伺服器程式設計中使用ORM框架?

如何在Python伺服器程式設計中使用ORM框架?

WBOY
發布: 2023-06-18 17:12:11
原創
963 人瀏覽過

隨著Python在伺服器端程式設計中的廣泛使用,ORM(物件關係映射)框架成為了Python伺服器程式設計中的重要組成部分。 ORM框架透過把資料庫中的資料映射到Python物件來簡化資料庫操作,並抽像出通用的接口,讓開發者能夠更加專注於業務邏輯的實現,而不是關注底層的資料庫操作。本文將介紹如何在Python伺服器程式設計中使用ORM框架。

ORM框架的優點

在傳統的資料庫操作中,我們需要使用SQL語句對資料庫進行增刪改查操作。這樣的操作需要了解資料庫結構、資料表結構和SQL語法,且難以維護和擴充。而使用ORM框架可以將資料表映射為Python類,抽像出增刪改查的操作,從而簡化開發。 ORM框架的優點有以下幾個面向:

  1. 抽象資料表

資料表是資料庫中最基本的儲存單元。使用ORM框架,我們可以把一個資料表映射成為一個Python類,並且類別中的屬性對應著資料表中的列名,從而可以實現對資料表的抽象。這樣,操作資料表就相當於對Python類別進行操作。

  1. 簡化操作

使用ORM框架,我們可以使用簡單的Python函數和方法來操作資料庫,可以把底層的SQL操作進行封裝,只需要呼叫方法即可進行增刪改查操作。

  1. 降低維護難度

採用ORM框架,可以將資料庫操作的底層細節進行抽象,減少資料庫與程式碼之間的耦合度,從而減少維護和擴展的難度,讓開發者更專注於實現業務邏輯。

選擇合適的ORM框架

Python中有很多ORM框架,包括Django ORM、SQLAlchemy、Peewee等等。選擇合適的ORM框架需要考慮以下幾個方面:

  1. 是否與自己的開發框架相容

如果你正在使用一個Python web框架,例如Flask或Django ,需要確保選擇的ORM框架與該框架相容。

  1. 資料庫支援

不同的ORM框架支援的資料庫也不同,例如Django ORM只支援PostgreSQL、MySQL和SQLite,而SQLAlchemy則支援更多的資料庫,如Oracle、SQL Server、MySQL等。因此,需要選擇適合自己使用的ORM框架。

  1. 功能支援

不同的ORM框架針對不同的應用程式場景提供不同的功能支援。需要依照自己的需求,選擇符合自己需求的ORM框架。

使用SQLAlchemy實作ORM

在Python伺服器程式設計中,SQLAlchemy是最受歡迎的ORM框架之一,它是一個全功能的SQL工具包和ORM函式庫,可以與大多數資料庫進行互動。下面,我們將介紹如何使用SQLAlchemy實作ORM。

安裝SQLAlchemy

在開始之前,需要先安裝SQLAlchemy,可以使用pip指令進行安裝。

pip install sqlalchemy
登入後複製

連接資料庫

使用SQLAlchemy進行ORM操作,首先需要與資料庫建立連線。在SQLAlchemy中,連接資料庫可以使用create_engine()

from sqlalchemy import create_engine

DB_URI = 'postgresql://username:password@host:port/database'
engine = create_engine(DB_URI)
登入後複製

其中,DB_URI 是資料庫連接字串,格式為"{dialect}://{user}:{password}@{host}:{port }/{database}",例如PostgreSQL 格式的連接字串為:

postgresql://myuser:mypassword@localhost:5432/mydatabase
登入後複製

建立資料表和Python類別

使用SQLAlchemy進行資料庫操作,需要將資料表對應到Python類別。 Python類別對應資料庫的資料表,類別的屬性對應表中的列名。在創建Python類別之前,首先需要建立資料表。 SQLAlchemy 中的資料表表示為 Table,可以使用 declarative_base() 函數建立一個基類,然後使用該基類來定義 Python 類別和資料庫表之間的映射關係。

from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)
    email = Column(String)
登入後複製

在上面的程式碼中,User 類別繼承自 Base 類,__tablename__ 屬性指定了對應的資料表名,然後各個屬性對應於資料表中的欄位。

實作ORM操作

現在我們已經建立了資料庫連接,並建立了Python類別和資料表之間映射關係,現在就可以操作資料庫了。

插入資料

插入資料可以使用session.add() 方法,交易提交使用session.commit() 方法。

from sqlalchemy.orm import sessionmaker

Session = sessionmaker(bind=engine)
session = Session()

user = User(name='Tom', age=20, email='tom@example.com')
session.add(user)
session.commit()
登入後複製

查詢資料

使用SQLAlchemy進行查詢操作主要分為兩個步驟:

  1. 建立查詢的資料表Object,並使用Session 建立一個Query 對象。
  2. 使用 Query 物件中的 filter() 和 order_by() 等方法來查詢。
users = session.query(User).filter(User.age > 18).order_by(User.age.desc()).all()
for user in users:
    print(user.name, user.age, user.email)
登入後複製

更新資料

更新資料可以使用 session.add() 方法進行更新操作。

user = session.query(User).filter_by(name='Tom').first()
user.age = 21
session.add(user)
session.commit()
登入後複製

刪除資料

從資料庫中刪除資料可以使用 session.delete() 方法進行刪除操作。

user = session.query(User).filter_by(name='Tom').first()
session.delete(user)
session.commit()
登入後複製

总结

在Python服务器编程中,ORM框架可以提供数据抽象、简化操作和降低维护难度的优势,能够加快开发速度。在选择ORM框架时,需要考虑自己的技术栈以及需求,选择相应的ORM框架。本文以SQLAlchemy为例,介绍了如何使用SQLAlchemy实现ORM操作,包括连接数据库、创建数据表和Python类以及实现增删改查操作。

以上是如何在Python伺服器程式設計中使用ORM框架?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板