PyCharm SQLAlchemy自动完成

Rol*_*ish 5 python sqlalchemy pycharm pyramid

我开始评估PyCharm 3专业版,因为我将参与几个Pyramid + SQLAlchemy项目.我真正喜欢的一件事是SQLAlchemy自动完成.

我会解释我的情景.

我用炼金术脚手架创建了一个新的初学者项目,我按照这里的说明http://docs.pylonsproject.org/projects/pyramid_tutorials/en/latest/pycharm/index.html.我还为我正在为此项目使用的解释器和虚拟环境安装了SQLAlchemy软件包.此外,当我为此代码创建一个新的pycharm项目时,IDE建议我安装金字塔,sqlalchemy和其他包.当然我接受了这个建议,让IDE安装所有这些软件包.

在models.py文件中,DBSession声明如下:

DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
Run Code Online (Sandbox Code Playgroud)

在views.py文件中,DBSession以这种方式使用:

one = DBSession.query(MyModel).filter(MyModel.name == 'one').first()
Run Code Online (Sandbox Code Playgroud)

所以我开始玩IDE并做了类似的事情:输入DBSession.IDE只是给了我一些建议,其中没有列出'查询'功能.然后我尝试输入:DBSession.query(MyModel).并按下Ctrl + Space以尝试获取建议并显示"无建议"消息.

我真的想拥有SQLAlchemy建议的函数,我可以在我的DBSession变量上使用(比如filter,filter_by,first等).我会说这对我来说是强制性的:)

有什么我想念的吗?或者,PyCharm不支持​​这个?

小智 9

我发现的解决方案(从Web上的某个地方获取)是键入提示DBSession实例,如下所示:

DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
""":type: sqlalchemy.orm.Session"""
Run Code Online (Sandbox Code Playgroud)

在此之后,代码完成似乎在项目的每个地方都可以正常工作


Ste*_*rcy 1

请注意,该教程指出:

本指南是针对 PyCharm 2.7.3 编写的,尽管许多主题适用于 PyCharm 3。

在 PyCharm 3 Professional 中,安装 Pyramid 并开始使用脚手架要容易得多。具体请参阅我的视频教程之一PyCharm 中的金字塔 5 分钟,时间为 1:17。

此外,如果事情没有按预期工作,您可能想放弃您的项目并重新开始。

PyCharm 3 Professional支持 SQAlchemy,如下所示。

  • 代码洞察(2.6+)
  • 可以在图表中查看数据库结构。请参阅使用图表部分。
  • 代码完成并解决。(3.0+)

查看有关如何使用代码完成的更多信息。