2015-11-18 4 views
0

Мне нужна динамическая обработка запросов с помощью SQLAlchemy.Обработка запросов в SQL Алхимия - Python

Рассмотрите таблицу, в которой есть три названия поля, возраст, город.

Из таблицы мне нужно забрать город, как название города, имеющее (s, r, t) символы.

Для этого SQLAlchemy запроса, который я обрамлении выглядит следующим образом:

query = query.filter(or_(model.city.like('%s%'),model.city.like('%r%'),model.city.like('%t%'))) 

Он работает, как я ожидал.

Но теперь моя проблема связана с обработкой значений во время выполнения моего кода.

Потому что в моем случае эти символы должны быть взяты из списка в python.

Рассмотрим списка Python:

['s','m','n'] 

Так сейчас здесь есть Запросы должны быть сделаны для тех значений в списке динамически.

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

Основная цель здесь - делать «как» и «или» в SQLAlchemy динамически.

ответ

2

Вы можете сопоставить символы списка с помощью метода like() и поместить результат в _or(). Что-то вроде линий:

chars = ['s','m','n'] 

query = query.filter(or_(*map(
           lambda x: model.city.like('%{}%'.format(x)), 
           chars 
))) 
+0

Работает должным образом, спасибо – iamnewuser

Смежные вопросы