推荐答案
// www.javascriptcn.com code example
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
# 创建数据库连接
engine = create_engine('sqlite:///example.db', echo=True)
# 创建基类
Base = declarative_base()
# 定义模型类
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
age = Column(Integer)
# 创建表
Base.metadata.create_all(engine)
# 创建会话
Session = sessionmaker(bind=engine)
session = Session()
# 添加数据
new_user = User(name='Alice', age=25)
session.add(new_user)
session.commit()
# 查询数据
user = session.query(User).filter_by(name='Alice').first()
print(user.name, user.age)
# 更新数据
user.age = 26
session.commit()
# 删除数据
session.delete(user)
session.commit()本题详细解读
1. 创建数据库连接
使用 create_engine 函数创建数据库连接。sqlite:///example.db 表示使用 SQLite 数据库,数据库文件名为 example.db。echo=True 参数用于在控制台输出 SQL 语句,便于调试。
2. 定义模型类
通过继承 Base 类来定义模型类。__tablename__ 属性指定数据库中的表名,Column 用于定义表的列。
3. 创建表
调用 Base.metadata.create_all(engine) 方法,根据模型类创建数据库表。
4. 创建会话
使用 sessionmaker 创建一个会话类,并通过 bind 参数绑定到数据库引擎。然后通过实例化会话类来创建会话对象 session。
5. 添加数据
通过实例化模型类创建对象,并使用 session.add() 方法将对象添加到会话中,最后调用 session.commit() 提交事务。
6. 查询数据
使用 session.query() 方法进行查询,filter_by() 用于添加过滤条件,first() 返回查询结果的第一条记录。
7. 更新数据
直接修改对象的属性,然后调用 session.commit() 提交事务,即可更新数据库中的数据。
8. 删除数据
使用 session.delete() 方法删除对象,然后调用 session.commit() 提交事务,即可从数据库中删除数据。
通过以上步骤,你可以使用 SQLAlchemy 进行基本的 ORM 操作。