小编Rol*_*ish的帖子

SQLAlchemy:按关系中的关系字段排序

在我正在处理的Pyramid应用程序中,我遇到以下情况:

class Widget(Base):
    __tablename__ = 'widgets'
    id = Column(Integer, primary_key=True)
    name = Column(String(50))
    sidebar = Column(mysql.TINYINT(2))

    def __init__(self, name, sidebar):
        self.name = name
        self.sidebar = sidebar

class Dashboard(Base):
    __tablename__ = 'dashboard'
    user_id = Column(Integer, ForeignKey('users.id'), primary_key=True)
    widget_id = Column(Integer, ForeignKey('widgets.id'), primary_key=True)
    delta = Column(mysql.TINYINT)

    widget = relationship('Widget')

    def __init__(self, user_id, widget_id, delta):
        self.user_id = user_id
        self.widget_id = widget_id
        self.delta = delta 

class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    login = Column(Unicode(255), unique=True)
    password = Column(Unicode(60))
    fullname = Column(Unicode(100)) …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy pyramid

5
推荐指数
1
解决办法
1878
查看次数

PyCharm SQLAlchemy自动完成

我开始评估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不支持​​这个?

python sqlalchemy pycharm pyramid

5
推荐指数
2
解决办法
5827
查看次数

在Pyramid中创建sqlalchemy查询对象的字典

我是Python和Pyramid的新手.在我用来了解更多有关Pyramid的测试应用程序中,我想查询数据库并根据sqlalchemy查询对象的结果创建字典,最后将字典发送到变色龙模板.

到目前为止,我有以下代码(工作正常),但我想知道是否有更好的方法来创建我的字典.

...
index = 0
clients = {}
q = self.request.params['q']
for client in DBSession.query(Client).filter(Client.name.like('%%%s%%' % q)).all():
    clients[index] = { "id": client.id, "name": client.name }
    index += 1
output = { "clients": clients }

return output
Run Code Online (Sandbox Code Playgroud)

在学习Python时,我发现了一种在for循环语句中创建列表的好方法,如下所示:

myvar = [user.name for user in users]
Run Code Online (Sandbox Code Playgroud)

那么,我遇到的另一个问题是:是否有像上面这样的"一行"方式来创建sqlalchemy查询对象的字典?

提前致谢.

python sqlalchemy pyramid

1
推荐指数
1
解决办法
1544
查看次数

标签 统计

pyramid ×3

python ×3

sqlalchemy ×3

pycharm ×1