📅  最后修改于: 2023-12-03 15:05:19.710000             🧑  作者: Mango
SQLAlchemy是一个用Python编写的SQL工具包和ORM框架。它提供了一种非常直观的方式来处理关系数据。 在本教程中,我们将介绍如何使用SQLAlchemy进行数据库操作。
你可以使用 pip
来安装SqlAlchemy
pip install sqlalchemy
from sqlalchemy import create_engine
db_url = 'postgresql://user:password@localhost:5432/mydatabase'
engine = create_engine(db_url)
这里我们创建了一个到PostgreSQL数据库的连接。可以根据实际情况修改连接参数。
from sqlalchemy import Table, Column, Integer, String, MetaData
metadata = MetaData()
users = Table('users', metadata,
Column('id', Integer, primary_key=True),
Column('name', String),
Column('age', Integer),
)
metadata.create_all(engine)
定义了一个 users
表,包含3个字段:id
, name
, age
。然后通过 metadata.create_all(engine)
来创建表。
from sqlalchemy import insert
conn = engine.connect()
ins = users.insert().values(name='Tom', age=18)
result = conn.execute(ins)
通过 users.insert().values()
来定义插入的数据,然后通过 conn.execute()
来执行插入操作。
from sqlalchemy.sql import select
s = select([users])
result = conn.execute(s)
for row in result:
print(row)
通过 select()
函数来实现查询操作。
from sqlalchemy import update
u = update(users).where(users.c.id == 1).values(name='Jerry', age=20)
result = conn.execute(u)
通过 update()
函数来更新数据,其中 where()
函数用来设置条件。
from sqlalchemy import delete
d = delete(users).where(users.c.id == 1)
result = conn.execute(d)
通过 delete()
函数来删除数据,其中 where()
函数用来设置条件。
到此为止,你应该已经掌握了SQLAlchemy的基本使用。若需要更详细的内容,请参考官方文档。
ORM(Object Relational Mapper)是一种将关系数据转化为对象的技术。SQLAlchemy也提供了一套强大的ORM框架。
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
age = Column(Integer)
我们定义了一个 User
类,继承自 declarative_base()
,然后定义了 id
, name
, age
3个属性,分别对应数据库表中的3个字段。通过 __tablename__
属性来指定表名。
from sqlalchemy.orm import sessionmaker
Session = sessionmaker(bind=engine)
session = Session()
user = User(name='Tom', age=18)
session.add(user)
session.commit()
通过 sessionmaker
来创建一个 Session ,并将其绑定到数据库引擎上。通过 session.add()
函数来添加数据,然后通过 session.commit()
来提交事务。
users = session.query(User).all()
for user in users:
print(user.id, user.name, user.age)
通过 session.query(User)
函数来查询 User
类中的数据。
user = session.query(User).filter_by(id=1).first()
user.name = 'Jerry'
user.age = 20
session.commit()
通过 session.query()
函数来查询数据,然后直接对对象的属性进行修改,最后通过 session.commit()
来提交事务。
user = session.query(User).filter_by(id=1).first()
session.delete(user)
session.commit()
通过 session.query()
函数来查询数据,然后通过 session.delete()
函数来删除数据,最后通过 session.commit()
来提交事务。
到此为止,你应该已经掌握了SQLAlchemy ORM框架的基本使用。若需要更详细的内容,请参考官方文档。