PyCharm SQLAlchemy自动完成

问题描述 投票:6回答:3

我开始评估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()))

在views.py文件中,通过以下方式使用DBSession:

one = DBSession.query(MyModel).filter(MyModel.name == 'one').first()

因此,我开始使用IDE并执行以下操作:键入DBSession。 IDE只是给了我一些建议,其中未列出“查询”功能。然后,我尝试键入:DBSession.query(MyModel)。并按Ctrl + Space尝试获取建议,并显示“无建议”消息。

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

我缺少什么吗?还是PyCharm不支持​​此功能?

python sqlalchemy pyramid pycharm
3个回答
10
投票

我找到的解决方案(从网络上的某个地方拾取)是这样提示DBSession实例:

DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
""":type: sqlalchemy.orm.Session"""

此代码完成后,似乎在项目中的所有地方都可以正常工作


1
投票

请注意,本教程指出:

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

在PyCharm 3 Professional中,安装Pyramid并开始使用脚手架要容易得多。具体请参见我的视频教程之一Pyramid in PyCharm in 5 minutes,网址为1:17。

此外,如果某些内容无法按预期工作,您可能还想吹牛您的项目并重新开始。

PyCharm 3 Professional supports SQAlchemy如下。

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

查看有关如何使用code completion的更多信息。


0
投票

作为for循环中变量的用法,我使用了:

for table, meta in tables.items():
    meta: Table
    pass

其中,tablessqlalchemy.orm.mapper.Mapper,并且table是导入的类型:

from sqlalchemy import create_engine, Table
© www.soinside.com 2019 - 2024. All rights reserved.