Я новичок в 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”