SQLAlchemy表类没有属性列

2024-09-30 16:29:58 发布

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

我试图动态访问我用SQL Alchemy创建的表的列列表。我创建了这样的表:

基准.py

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import scoped_session, sessionmaker
import os

# Create database engine
db_name = 'database.db'
db_path = os.path.join(os.path.dirname(__file__), db_name)
db_uri = 'sqlite:///{}'.format(db_path)
engine = create_engine(db_uri, convert_unicode=True)

# Declarative base model to create database tables and classes
Base = declarative_base()
Base.metadata.bind = engine  # Bind engine to metadata of the base class

# Create database session object
db_session = scoped_session(sessionmaker(bind=engine, expire_on_commit=False))
Base.query = db_session.query_property()  # Used by graphql to execute queries

模型_行星.py

^{pr2}$

在另一个文件中,我正在导入model_planet.ModelPlanet,并尝试按照此处的文档访问其列:http://docs.sqlalchemy.org/en/latest/core/metadata.html

from database.model_planet import ModelPlanet

print(type(ModelPlanet))
for column in ModelPlanet.columns:
    print(column)

我得到以下信息:

<class 'sqlalchemy.ext.declarative.api.DeclarativeMeta'>
Traceback (most recent call last):
[...]
    for column in ModelPlanet.columns:
AttributeError: type object 'ModelPlanet' has no attribute 'columns'

我想这和我定义表的方式有关。如何动态访问它的列?在

谢谢


Tags: topathfromimportdbbasemodelsqlalchemy