心智圖資源庫 SQLAlchemy
這是一篇關於SQLAlchemy的思維導圖,主要內容包括:異常處理,性能優化,關係,刪除數據,更新數據,查詢數據,插入數據,映射到數據庫,聲明模型,連接數據庫,安裝,簡介。
編輯於2024-01-30 11:35:57Microbiologia medica, Infezioni batteriche e immunità riassume e organizza i punti di conoscenza per aiutare gli studenti a comprendere e ricordare. Studia in modo più efficiente!
La teoria cinetica dei gas rivela la natura microscopica dei fenomeni termici macroscopici e le leggi dei gas trovando la relazione tra quantità macroscopiche e quantità microscopiche. Dal punto di vista del movimento molecolare, vengono utilizzati metodi statistici per studiare le proprietà macroscopiche e modificare i modelli di movimento termico delle molecole di gas.
Este é um mapa mental sobre uma breve história do tempo. "Uma Breve História do Tempo" é um trabalho científico popular com influência de longo alcance. Ele não apenas introduz os conceitos básicos da cosmologia e da relatividade, mas também discute os buracos negros e a expansão. Do universo. questões científicas de ponta, como inflação e teoria das cordas.
Microbiologia medica, Infezioni batteriche e immunità riassume e organizza i punti di conoscenza per aiutare gli studenti a comprendere e ricordare. Studia in modo più efficiente!
La teoria cinetica dei gas rivela la natura microscopica dei fenomeni termici macroscopici e le leggi dei gas trovando la relazione tra quantità macroscopiche e quantità microscopiche. Dal punto di vista del movimento molecolare, vengono utilizzati metodi statistici per studiare le proprietà macroscopiche e modificare i modelli di movimento termico delle molecole di gas.
Este é um mapa mental sobre uma breve história do tempo. "Uma Breve História do Tempo" é um trabalho científico popular com influência de longo alcance. Ele não apenas introduz os conceitos básicos da cosmologia e da relatividade, mas também discute os buracos negros e a expansão. Do universo. questões científicas de ponta, como inflação e teoria das cordas.
SQLAlchemy
簡介
SQLAlchemy是一個Python SQL工具包和ORM框架
提供了全面的資料庫操作和ORM功能
支援多種資料庫,如MySQL、PostgreSQL、SQLite等
安裝
使用pip安裝SQLAlchemy
安裝指令:pip install SQLAlchemy
連接資料庫
使用create_engine函數建立資料庫連接
範例:engine = create_engine('mysql://user:password@localhost/dbname')
聲明模型
使用declarative_base函數建立模型基類
使用類別繼承模型基底類,並定義屬性
範例:from sqlalchemy import Column, Integer, String
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
映射到資料庫
使用Base.metadata.create_all()將模型對應到資料庫
範例:Base.metadata.create_all(engine)
插入數據
使用session.add()新增物件到會話
使用***mit()提交會話
範例:from sqlalchemy.orm import sessionmaker
Session = sessionmaker(bind=engine)
session = Session()
new_user = User(name='John')
session.add(new_user)
***mit()
查詢數據
使用session.query()建構查詢對象
使用查詢物件上的篩選方法進行查詢
範例:users = session.query(User).filter_by(name='John').all()
更新數據
使用session.query()建構查詢對象
使用查詢物件上的更新方法進行更新
範例:user = session.query(User).filter_by(name='John').first()
user.name = 'Jane'
***mit()
刪除數據
使用session.query()建構查詢對象
使用查詢物件上的刪除方法進行刪除
範例:user = session.query(User).filter_by(name='Jane').first()
session.delete(user)
***mit()
關係
一對一關係
使用ForeignKey定義一對一關係
範例:from sqlalchemy import ForeignKey
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
address_id = Column(Integer, ForeignKey('addresses.id'))
一對多關係
使用ForeignKey定義一對多關係
範例:from sqlalchemy import ForeignKey
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
address_id = Column(Integer, ForeignKey('addresses.id'))
多對多關係
使用 association table 定義多對多關係
範例:from sqlalchemy import Table, Column, Integer, ForeignKey
users_addresses = Table('users_addresses',
Base.metadata,
Column('user_id', Integer, ForeignKey('users.id')),
Column('address_id', Integer, ForeignKey('addresses.id'))
)
效能最佳化
使用連線查詢代替子查詢
使用批次插入代替單條插入
使用索引提高查詢速度
例外處理
使用try/except處理資料庫操作異常
範例:try:
session.add(new_user)
***mit()
except Exception as e:
session.rollback()
print(e)