SQLAlchemy 1.2 AttributeError:'list'对象没有属性'Session'

时间:2017-10-16 18:37:49

标签: python-3.x sqlalchemy

我试图使用本教程中的代码段: http://newcoder.io/scrape/part-4/

以下是具有类定义的文件:

[2,3,2]

当我调用Test.add_item(args)时,会生成以下错误。

from sqlalchemy.orm import sessionmaker
from .models import Deals, db_connect, create_deals_table

class Test(object):

    def __init__(self, args):
        """
        Initializes database connection and sessionmaker.
        Creates deals table.
        """
        engine = db_connect()
        create_deals_table(engine)
        self.Session = sessionmaker(bind=engine)

    def add_item(self):

        session = self.Session()

        tester = Deals(title="test 3 deal",location='here', price=2.00)
        session.add(tester)
        session.commit()

当我运行与没有类定义的python脚本相同的代码时,代码工作正常并添加了一行。

1 个答案:

答案 0 :(得分:1)

您正在尝试在类本身上调用实例方法:Test.add_item(args)

您将方法定义为仅具有self且没有参数。这意味着您需要在类的实例上调用它,并且不传递任何参数

test = Test()
test.add_item()

您收到该特定错误的原因是因为您使用list参数args调用该函数作为参数self,然后self.Session()行是尝试从Session对象获取属性args。您需要修改方法定义或对其的调用(例如,def add_item(self, args):