在SqlAlchemy中如何测试某个属性是Column还是仅是普通属性

时间:2019-04-18 20:31:18

标签: python sqlalchemy

我已经定义了一些继承declarative_base的类,如下所示:

class SomeClass(Base):
    __tablename__ = 'some_table'
    id = Column("some_table_id", Integer, primary_key=True)
    data = Column(Text)
    some_other_data = "some_other_data"

在做报告时,我想自动抓住那些Column属性,同时不理会非Column属性。有办法测试吗?

1 个答案:

答案 0 :(得分:0)

您可以使用以下所有gt类类列:

import sys,subprocess  # we could use python script functions too
with open("url.txt") as f:
  for line in f:
     url = line.rstrip()
     if url:
         output = subprocess.check_output([sys.executable,"test_python_classify.py",url])
         output = output.decode().strip()  # decode & get rid of linefeeds
         if output == "1":
            print("okay")
            subprocess.check_call(["curl","-o","image.png",url])
            subprocess.check_call([sys.executable,"description1.py",url])
         else:
            print("failed: {}: {}".format(url,output))

输出:

for c in SomeClass.__table__.columns:
    print(c)

这不会给您该类的其他普通属性。

如果要获取表字段(列)的数据,请按以下方式使用上面的代码

some_table.some_table_id
some_table.data

result = session.query(*[c for c in SomeClass.__table__.c]).all() print(result) 是数据库连接。