Heim > Artikel > Backend-Entwicklung > Praktische Tipps für Python SQLAlchemy: vom Anfänger bis zum Experten
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
pip install sqlalchemy2. Datenbank-Engine 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
是数据库的类型,user
、password
、host
、port
和 database
Session = sessionmaker(bind=engine) session = Session()4. Betriebsdatenbank
4.1 Daten abfragen
results = session.query(User).filter(User.name == "John").all()Unter diesen wird die
-Methode verwendet, um alle Abfrageergebnisse zu erhalten. User
是您要查询的表,filter()
方法用于过滤查询结果,all()
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()
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()
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()
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. User
和 Address
是您要映射的两个表,__tablename__
属性指定了表的名称,id
属性指定了主键,name
、age
和 address
属性指定了表的字段。ForeignKey()
函数用于指定外键关系。relationship()
2.1 Batch-Abfrage
users = session.query(User).filter(User.age > 18).all()Unter diesen wird die
-Methode verwendet, um alle Abfrageergebnisse zu erhalten. User
是您要查询的表,filter()
方法用于过滤查询结果,all()
session.execute("CREATE INDEX idx_user_age ON user (age)")wobei
das Feld ist, das Sie indizieren möchten. user
是您要创建索引的表,age
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!