Рубрики
Без рубрики

Выберите строку с WhenClause в sqlalchemy

Я новичок в SQLALCHEMY и AIOPG. После определения представленного объекта и завершенной инициализации БД, я был … Tagged с Python.

Я новичок в SQLALCHEMY и AIOPG. После определения представленного объекта и завершенной инициализации DB я хотел получить одну строку с указанным id на сервере AIOHTTP.

import aiopg.sa
from sqlalchemy import (
    MetaData, Table, Column, ForeignKey,
    Integer, String, Date
)

...

product = Table(
    'product', meta,

    Column('id', Integer, primary_key=True),
    Column('Name', String(200), nullable=False),
    Column('Description', String(200), nullable=False),
    Column('Price', Integer, nullable=False),

)

async def init_pg(app):
    conf = app['config']['postgres']
    engine = await aiopg.sa.create_engine(
        database=conf['database'],
        user=conf['user'],
        password=conf['password'],
        host=conf['host'],
        port=conf['port'],
        minsize=conf['minsize'],
        maxsize=conf['maxsize'],
    )
    app['db'] = engine

Проведя весь день, наконец, я понял это. Текст может преобразовать строку как Textclause и это можно использовать в Whereclause Анкет

https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.select

from sqlalchemy import text

...

async with request.app['db'].acquire() as conn:
        whereclause = text('id = {}'.format(request.match_info['id']))
        cursor = await conn.execute(db.product.select(whereclause=whereclause))
        record = await cursor.fetchone()
        product = Product(*record.values()) 

Я очень рад это узнать:) И мне лучше рассмотреть официальный документ более тщательно.

Оригинал: “https://dev.to/kemurayama/select-a-row-with-whereclause-in-sqlalchemy-32ol”