Python SqlAlchemy Session 对象被 VSCode 视为 None

问题描述 投票:0回答:1

我刚刚开始在一个新的 Python 后端项目中工作,并决定重用我过去构建的旧项目中的一些代码。那时,VSCode 不会抱怨这个问题,但现在却抱怨了:

代码使用 SQLAlchemy 会话与数据库对话,如下例所示:

def get_by_username(self, username:str) -> UserModel:
    user: UserModel
    with Session(self.DB_ENGINE, future=True) as session, session.begin():
        userDB : UserORM | None = None
        try:
            userDB = session.query(UserORM).filter(UserORM.username == username).first()
    ...

VSCode 假定会话对象为 None,因此指示错误:

VSCode assumes session is None

Object of type "None" cannot be used with "with" because it does not implement __enter__
  Attribute "__enter__" is unknownPylancereportGeneralTypeIssues
Object of type "None" cannot be used with "with" because it does not implement __exit__PylancereportGeneralTypeIssues
(variable) session: Session

代码运行没有任何问题,但错误消息很烦人。

如何在不忽略输入的情况下指示会话对象不是 None?

非常感谢!

python sqlalchemy python-typing
1个回答
0
投票

您应该使用 SQLalchemy 进行 VS 代码扩展。类似这样的问题可以帮忙解答很多。它基本上是一个经过 SQLAlchemy 文档训练的 RAG 系统,您可以通过 VS Code 进行查询。 https://marketplace.visualstudio.com/items?itemName=buildwithlayer.sqlalchemy-integration-expert-jYSzG https://www.loom.com/share/2c43928aeed14e6aa24092f73d42629a?t=0

© www.soinside.com 2019 - 2024. All rights reserved.