更改类位置

时间:2016-12-16 17:37:13

标签: python sqlalchemy

当我使用sqlAlchemy从mysql DB读取数据时,当我的类和搜索代码在同一个py文件中时,它就可以正常工作:

class odd_basis(Base):
    __tablename__ = 'odd_basis'

    NO = Column(Integer, primary_key=True)
    LEAGUE = Column(String(20))
    TIME   = Column(String(20))

engine = create_engine("......")
session = sessionmaker(bind=engine)
DBsession = session()
basis_data = DBsession.query(odd_basis).filter(odd_basis.NO=='16039').all()

当我将类定义放在另一个py文件中,然后使用sys.path.append进行导入时,会出现此错误:

sqlalchemy.exc.ArgumentError:预期的SQL表达式对象或字符串,取而代之的是对象

我的主要代码:

import sys
sys.path.append("~/analysis/table_class.py")
engine = create_engine("......")
session = sessionmaker(bind=engine)
DBsession = session()
basis_data = DBsession.query(odd_basis).filter(odd_basis.NO=='16039').all()

table_class.py:

from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String, Numeric, ForeignKey, UniqueConstraint, Index


Base = declarative_base()
class odd_basis(Base):
    __tablename__ = 'odd_basis'

    NO = Column(Integer, primary_key=True)
    LEAGUE = Column(String(20))
    TIME   = Column(String(20))

1 个答案:

答案 0 :(得分:0)

Sys.path.append不会导入任何内容。它只会增加您的搜索路径。您需要从那里导入您的课程:

from table_class import odd_basis

等等。

哈努哈利