Python 无法使用delete()从数据库中删除对象

Python 无法使用delete()从数据库中删除对象,python,sqlalchemy,fastapi,Python,Sqlalchemy,Fastapi,根据文档,应该有一个delete方法,但是我的模型似乎没有delete方法,我做错了什么 Models.py 从sqlalchemy导入BigInteger、Column、DateTime、ForeignKey、Integer、Numeric、String、Text、Text 从sqlalchemy.orm导入关系 从sqlalchemy.ext.declarative导入声明性基础 Base=声明性的\u Base 元数据=Base.metadata 类别数据库: __tablename_uu

根据文档,应该有一个delete方法,但是我的模型似乎没有delete方法,我做错了什么

Models.py 从sqlalchemy导入BigInteger、Column、DateTime、ForeignKey、Integer、Numeric、String、Text、Text 从sqlalchemy.orm导入关系 从sqlalchemy.ext.declarative导入声明性基础 Base=声明性的\u Base 元数据=Base.metadata 类别数据库: __tablename_uu='category' id=列'id',整数,主键=True name=列'name',String200 parentid=列'parentid',整数 Main.py def crud_delete_single_catdb:会话,cat_id:int->int: query=models.Category.delete.wheremodels.Category.id==cat\u id 打印查询 结果=db.query 返回results.rowcount 尝试运行该方法时出现错误消息:

AttributeError:类型对象“Category”没有属性“delete”


谢谢你的回答,我发现了错误并修复了它,我改变了创建模型的方式。我使用了文档中的经典映射,现在删除了作品:

Models.py 从sqlalchemy导入BigInteger、列、日期时间、ForeignKey、整数、数字、字符串、文本、文本、表格 从sqlalchemy.orm导入关系,映射器 从sqlalchemy.ext.declarative导入声明性基础 Base=声明性的\u Base 元数据=Base.metadata category=表'category',元数据, 列'id',整数,主键=True, 列'name',String200, 列'parentid',整数, 类别对象: 定义初始自身、类别id、名称、父id: self.id=cat\u id self.name=名称 self.parentid=parentid 地图分类 main.py def crud_delete_single_catdb:Session,cat_id:int->bool: 记录=db.querymodels.Category.all stm=models.category.delete.wheremodels.category.c.id==cat\u id printstm 结果=db.executestm db.commit result\u set=db.executeSELECT id,name,parentid FROM public.category; 打印结果集 对于结果集合中的r: 印刷工 返回[{column:value for column,value for rowproxy.items}for rowproxy in result_set] return wait databasehelper.database.fetch\u allquery 返回真值 @router.delete/category/{cat_id},tags=[category] def read_itemcat_id:int,db:Session=Dependsget_db: 已删除=crud\u delete\u单个\u catdb,cat\u id 返回{cat_deleted:deleted}
它们的示例是从类sqlalchemy.Table生成的对象。您使用的是不同的类,因此查看的文档是错误的,或者是以不同的方式实现的,而没有.delete.Is it models.Category.\u_表\u_.delete.where…,per?使用ORM时,您可以通过session:session.deletemodel\u实例进行删除。