37创客科创中心

 找回密码
 立即注册
查看: 1979|回复: 0

333

[复制链接]

194

主题

324

帖子

2401

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2401
发表于 2023-5-18 22:12:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

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)。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|37创客科创中心

GMT+8, 2025-12-11 17:11 , Processed in 0.134709 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表