|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- 读取数据
Session从导入sqlalchemy.orm,这将允许您声明db参数的类型,并在您的函数中进行更好的类型检查和完成。 导入models(SQLAlchemy 模型)和schemas(Pydantic模型/模式)。 创建实用函数以:
- 通过 ID 和电子邮件读取单个用户。
- 读取多个用户。
- 阅读多个项目。
from sqlalchemy.orm import Sessionfrom . import models, schemasdef get_user(db: Session, user_id: int): return db.query(models.User).filter(models.User.id == user_id).first()def get_user_by_email(db: Session, email: str): return db.query(models.User).filter(models.User.email == email).first()def get_users(db: Session, skip: int = 0, limit: int = 100): return db.query(models.User).offset(skip).limit(limit).all()def create_user(db: Session, user: schemas.UserCreate): fake_hashed_password = user.password + "notreallyhashed" db_user = models.User(email=user.email, hashed_password=fake_hashed_password) db.add(db_user) db.commit() db.refresh(db_user) return db_userdef get_items(db: Session, skip: int = 0, limit: int = 100): return db.query(models.Item).offset(skip).limit(limit).all()def create_user_item(db: Session, item: schemas.ItemCreate, user_id: int): db_item = models.Item(**item.dict(), owner_id=user_id) db.add(db_item) db.commit() db.refresh(db_item) return db_item提示 通过创建独立于您的路径操作函数的仅专用于与数据库交互(获取用户或项目)的函数,您可以更轻松地在多个部分中重用它们,并为它们添加单元测试。 创建数据现在创建实用函数来创建数据。 步骤是: - 使用您的数据创建 SQLAlchemy 模型实例。
- add 该实例对象到您的数据库会话。
- commit 对数据库的更改(以便保存)。
- refresh 您的实例(以便它包含来自数据库的任何新数据,例如生成的 ID)。
|
|