我开始评估 PyCharm 3 专业版,因为我将从事几个 Pyramid + SQLAlchemy 项目。 我真正喜欢的功能之一是 SQLAlchemy 自动完成功能。
我在 these 之后用炼金术脚手架创建了一个新的入门项目指示。我还为我在这个项目中使用的解释器和虚拟环境安装了 SQLAlchemy 包。
另外,当我为这段代码创建一个新的pycharm项目时,IDE建议我安装pyramid、sqlalchemy等包。我当然接受了这个建议,让 IDE 安装所有这些包。
在models.py
文件中,DBSession声明如下:
DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
在views.py文件中,DBSession是这样使用的:
one = DBSession.query(MyModel).filter(MyModel.name == 'one').first()
所以我开始使用 IDE 并做了类似这样的事情:键入 DBSession。 IDE只是给了我一些建议,其中没有列出“查询”功能。然后我尝试输入:DBSession.query(MyModel)
。并按 Ctrl+Space
尝试获取建议,但出现“无建议”消息。
我真的很想在我的 DBSession 变量上使用 SQLAlchemy 函数建议(比如 filter
、filter_by
、first
, ETC)。我会说这对我来说是强制性的:)
有什么我想念的吗?或者,PyCharm 不支持这个?
最佳答案
我找到的解决方案(从网络上的某个地方获取)是像这样键入提示 DBSession 实例:
DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
""":type: sqlalchemy.orm.Session"""
在此之后,代码完成似乎在项目的任何地方都可以正常工作
关于python - PyCharm SQLAlchemy 自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21793590/