Heim  >  Artikel  >  Backend-Entwicklung  >  Praktische Tipps für Python SQLAlchemy: vom Anfänger bis zum Experten

Praktische Tipps für Python SQLAlchemy: vom Anfänger bis zum Experten

王林
王林nach vorne
2024-02-25 08:00:57769Durchsuche

Python SQLAlchemy 实战秘籍:从新手到专家

SQLAlchemie-Einführung

SQLAlchemy ist ein Open-Source-Tool Object Relational Mapping (ORM) in Python, mit dem Sie Python-Objekte ganz einfach Tabellen in Datenbank zuordnen können, indem Sie einfachen Python-Code verwenden, um auf der Datenbank zu arbeiten . SQLAlchemy unterstützt eine Vielzahl von Datenbanken, darunter Mysql, postgresql, SQLite usw.

Grundlegende Verwendung von SQLAlchemy

1. Installieren Sie SQLAlchemy

Zuerst müssen Sie SQLAlchemy in Ihrer Python-Umgebung installieren. Sie können es mit dem folgenden Befehl installieren:

pip install sqlalchemy

2. Datenbank-Engine erstellen

Bevor Sie SQLAlchemy verwenden, müssen Sie zunächst eine Datenbank-Engine erstellen. Die Datenbank-Engine ist die Schnittstelle, die SQLAlchemy zur Kommunikation mit der Datenbank verwendet. Sie können den folgenden Code verwenden, um eine Datenbank-Engine zu erstellen:

from sqlalchemy import create_engine

engine = create_engine("mysql+pymysql://user:passWord@host:port/database")

Dazu gehören

jeweils der Benutzername, das Passwort, der Host, die Portnummer und der Datenbankname der Datenbank. mysql+pymysql 是数据库的类型,userpasswordhostportdatabase

3. Sitzung erstellen

Session ist das Objekt, das SQLAlchemy zur Interaktion mit der Datenbank verwendet. Sie können den folgenden Code verwenden, um eine Sitzung zu erstellen:

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

4. Betriebsdatenbank

Sie können Sitzungen verwenden, um verschiedene Vorgänge in der Datenbank auszuführen, z. B. Abfragen, Einfügungen, Aktualisierungen und Löschungen. Hier sind einige häufig verwendete Operationen:

4.1 Daten abfragen

Sie können den folgenden Code verwenden, um die Daten abzufragen:

results = session.query(User).filter(User.name == "John").all()

Unter diesen wird die

-Methode verwendet, um alle Abfrageergebnisse zu erhalten. User 是您要查询的表,filter() 方法用于过滤查询结果,all()

4.2 Daten einfügen

Sie können den folgenden Code verwenden, um Daten einzufügen:

new_user = User(name="John", age=30)
session.add(new_user)
session.commit()

Unter diesen wird die

-Methode verwendet, um alle Änderungen in der Sitzung zu übernehmen. User 是您要插入数据的表,new_user 是您要插入的新数据,add() 方法用于将新数据添加到会话中,commit()

4.3 Daten aktualisieren

Sie können den folgenden Code verwenden, um die Daten zu aktualisieren:

user = session.query(User).filter(User.name == "John").first()
user.age = 31
session.commit()

Unter diesen wird die

-Methode verwendet, um alle Änderungen in der Sitzung zu übernehmen. User 是您要更新数据的表,filter() 方法用于过滤查询结果,first() 方法用于获取第一个查询结果,age 是您要更新的字段,commit()

4.4 Daten löschen

Mit dem folgenden Code können Sie Daten löschen:

user = session.query(User).filter(User.name == "John").first()
session.delete(user)
session.commit()

Unter diesen wird die

-Methode verwendet, um alle Änderungen in der Sitzung zu übernehmen. User 是您要删除数据的表,filter() 方法用于过滤查询结果,first() 方法用于获取第一个查询结果,delete() 方法用于删除数据,commit()

Erweiterte Verwendung von SQLAlchemy

1. Beziehungszuordnung

SQLAlchemy hilft Ihnen, Python-Objekte einfach Tabellen in Ihrer Datenbank zuzuordnen. Sie können den folgenden Code verwenden, um eine Beziehungskarte zu definieren:

class User(Base):
__tablename__ = "user"

id = Column(Integer, primary_key=True)
name = Column(String(50), unique=True)
age = Column(Integer)

class Address(Base):
__tablename__ = "address"

id = Column(Integer, primary_key=True)
user_id = Column(Integer, ForeignKey("user.id"))
address = Column(String(100))

# 创建关系映射
User.addresses = relationship("Address", back_populates="user")
Address.user = relationship("User", back_populates="addresses")

Unter anderem wird die Funktion

zum Definieren der Beziehungszuordnung verwendet. UserAddress 是您要映射的两个表,__tablename__ 属性指定了表的名称,id 属性指定了主键,nameageaddress 属性指定了表的字段。ForeignKey() 函数用于指定外键关系。relationship()

2. Abfrage

Optimierung

SQLAlchemy bietet eine Vielzahl von Techniken zur Abfrageoptimierung, mit denen Sie die Abfrageleistung verbessern können. Hier sind einige häufig verwendete Techniken zur Abfrageoptimierung:

2.1 Batch-Abfrage

Sie können Batch-Abfragen verwenden, um die Abfrageleistung zu verbessern. Eine Stapelabfrage kann mehrere Datenzeilen gleichzeitig abfragen. Sie können den folgenden Code verwenden, um Batch-Abfragen durchzuführen:

users = session.query(User).filter(User.age > 18).all()

Unter diesen wird die

-Methode verwendet, um alle Abfrageergebnisse zu erhalten. User 是您要查询的表,filter() 方法用于过滤查询结果,all()

2.2 Verwendung von

index

Sie können Indizes verwenden, um die Abfrageleistung zu verbessern. Mithilfe von Indizes kann die Datenbank schnell die Daten finden, die Sie abfragen möchten. Sie können den folgenden Code verwenden, um einen Index zu erstellen:

session.execute("CREATE INDEX idx_user_age ON user (age)")

wobei

das Feld ist, das Sie indizieren möchten. user 是您要创建索引的表,age

3.

AngelegenheitenManagement

SQLAlchemy unterstützt die Transaktionsverwaltung. Mithilfe von Transaktionen können Sie sicherstellen, dass Datenbankvorgänge entweder alle erfolgreich sind oder alle fehlschlagen. Um eine Transaktion zu starten, können Sie den folgenden Code verwenden:

session.begin()

Sie können den folgenden Code verwenden, um eine Transaktion einzureichen:

session.commit()

您可以使用以下代码来回滚一个事务:

session.rollback()

结语

SQLAlchemy 是一个功能强大且易于使用的 ORM 工具。它可以帮助您轻松地将 Python 对象与数据库中的表进行映射,并通过简单的 Python 代码来对数据库进行操作。本文介绍了 SQLAlchemy 的基本使用和进阶使用。希望您能通过本文学习到 SQLAlchemy 的使用技巧,并将其应用到您的实际项目中。

Das obige ist der detaillierte Inhalt vonPraktische Tipps für Python SQLAlchemy: vom Anfänger bis zum Experten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:lsjlt.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen