如何从python命令行向我的挂架应用程序列出/添加节点?

2024-03-28 22:21:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我继承了一个Pylons应用程序。它有一个MySQL数据库。应用程序中有一个名为Node的模型。我想首先列出数据库中的所有节点。然后,我想添加一个节点。到目前为止,我一直在尝试:

import myapp.model as model
nodes = model.Session.query(model.Node).all()
for node in nodes:
    print node

上面的代码抛出了一个错误,我在其他问题中看到了这个错误,比如one

Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/usr/lib/python2.4/site-packages/sqlalchemy/orm/query.py", line 1579, in all
    return list(self)
  File "/usr/lib/python2.4/site-packages/sqlalchemy/orm/query.py", line 1689, in __iter__
    return self._execute_and_instances(context)
  File "/usr/lib/python2.4/site-packages/sqlalchemy/orm/query.py", line 1694, in _execute_and_instances
    mapper=self._mapper_zero_or_none())
  File "/usr/lib/python2.4/site-packages/sqlalchemy/orm/session.py", line 717, in execute
    engine = self.get_bind(mapper, clause=clause, **kw)
  File "/usr/lib/python2.4/site-packages/sqlalchemy/orm/session.py", line 851, in get_bind
    raise sa_exc.UnboundExecutionError(
sqlalchemy.exc.UnboundExecutionError: Could not locate a bind configured on mapper Mapper|Node|node, SQL expression or this Session

我觉得我少了一步什么的。我习惯于使用Django中的模型,这是我第一次使用Pylon应用程序。我认为这与治疗有关,但我不确定。有人知道如何列出所有节点,然后添加节点吗


Tags: inpyselfmodel节点sqlalchemylibpackages
1条回答
网友
1楼 · 发布于 2024-03-28 22:21:05

我发现他错了。我从未设置与数据库的会话:

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
import myapp.model as model

engine = create_engine("mysql://username:password@localhost/myapp")
conn = engine.connect()
session = Session(bind=conn)
nodes = session.query(model.Node).all()
for node in nodes:
    print node

相关问题 更多 >