我的职能如下:
def _init_db() -> "sqlalchemy.orm.session.Session":
engine = create_engine("sqlite:///my_db.db")
Base.metadata.create_all(engine)
# Creating Session
from sqlalchemy.orm import sessionmaker
Session = sessionmaker(bind = engine)
session = Session()
return session在代码上运行mypy会导致以下错误
错误:名称“sqlalchemy”未定义
我试着用和不带sqlalchemy.orm.session.Session的引号
如何为sqlalchemy类添加类型提示?我遗漏了什么?
发布于 2019-01-31 11:08:04
为了使用类型提示,您可以导入要返回的内容。在第一个示例中,我试图定义一个函数,在不导入sqlite3的情况下返回一些sqlite3内容。在导入这个模块之后,一切都很好。
In [1]: def init_db() -> sqlite3.Connection:
...: return sqlite3.connection
...:
...:
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-1-b64a7629272c> in <module>()
----> 1 def init_db() -> sqlite3.Connection:
2 return sqlite3.connection
NameError: name 'sqlite3' is not defined
In [2]: import sqlite3
In [3]: def init_db() -> sqlite3.Connection:
...: return sqlite3.connection
...:
...:
In [4]:发布于 2019-01-31 11:20:05
多亏了冈佐尔的回答。
我需要补充一下
from sqlalchemy.orm.session import Session
在开始,然后做
def _init_db() -> "Session":
engine = create_engine("sqlite:///my_db.db")
Base.metadata.create_all(engine)
# Creating Session
from sqlalchemy.orm import sessionmaker
Session = sessionmaker(bind = engine)
session = Session()
return sessionhttps://stackoverflow.com/questions/54458110
复制相似问题