Как получить данные конкретных столбцов из базы данных Postgres в SQL Alchemy - PullRequest
0 голосов
/ 08 мая 2019

Я работаю над Postgres и начинаю с SQL Alchemy.Я создал "layout_api.py"

layout_api.py

from sqlalchemy import create_engine
from sqlalchemy import Column, String, Integer, TIMESTAMP, Sequence, text, types
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
import datetime, uuid


db_string = "postgres://postgres:password@10.***.**.**/gridcustomization"

Base = declarative_base()
db = create_engine(db_string) 


class Layout(Base):
    __tablename__ = "col.layout"
    layout_id = Column(UUID(as_uuid=True), nullable=False, primary_key=True)
    name = Column(String(1000), nullable=False)
    user_id = Column(UUID(as_uuid=True), nullable=False)
    ispublic = Column(Integer, default=0, nullable=False)
    isactive = Column(Integer, default=0, nullable=False)
    createdby = Column(Integer, default=1, nullable=False)

Теперь я хочу только определенные столбцы.Как и в SQL, мы пишем:

SELECT layout_id, user_id, isactive FROM col.layout;

Я пытался сделать то же самое в SQL Alchemy, но не получил вывод.

fetch_columns_data.py

class DBFetch:

    def get(self):
        Session = sessionmaker(bind=db)   #make session to query data
        session = Session()
        Base.metadata.create_all(db)
        session.query("SET search_path TO col")

        result = []
        selected_columns = Layout.__table__.columns   # specific columns selected by user
        print("Selected columns {}".format(selected_columns))
        record = session.query(Layout).with_entities(*selected_columns).one()
        for row in record:
            result.append((row._asdict()))
        print(result)

Как я могу получить данные конкретных столбцов из базы данных?Я пытаюсь это для пользователя, который хочет только конкретные данные столбца.Посоветуй мне.Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...