Sqlmodel/alchemy выборочный поиск и безопасностьPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Sqlmodel/alchemy выборочный поиск и безопасность

Сообщение Anonymous »

я использую htmx и sqlmodel для фильтрации и возврата данных через fastapi.
данные, которые я фильтрую, представляют собой эпизоды, которые имеют отношения «многие ко многим» с гуру, у каждого из которых есть имя
Ввод поиска в формате htmx

Код: Выделить всё

Filter By Guru







поисковой запрос поступает на мой маршрут fastapi с SearchKind и search_str
в случае SearchKind = = 'guru' я сначала фильтрую гуру, которые содержат search_str, затем, благодаря sqlmodel, использую простой Python для получения связанных эпизодов.

Код: Выделить всё

from sqlalchemy import func
from sqlmodel import select

stmt = select(Guru).where(
func.lower(Guru.name).like(f'%{search_str.lower()}%')
)
matching_gurus = session.exec(stmt).all()
matching_episodes = {ep for guru in matching_gurus for ep in guru.episodes}
return sorted(list(matching_episodes), key=lambda ep: ep.date, reverse=True)
Я не особо часто использовал sqlalchemy, но использую func, чтобы включить поиск без учета регистра в сочетании с сеансом sqlmodel. можно ли смешивать и сочетать sqlmodel и sqlalchemy вот так? я имею в виду, что все работает нормально....
также могу ли я сократить это до одного вызова базы данных для большей эффективности? есть ли способ sqlmodel для поиска без учета регистра? я чувствую, что база данных - лучшее место для выполнения этих операций, но, возможно, sqlmodel все равно делает это под капотом?
и, что более важно, неявно защищает ли sqlmodel меня от sql-инъекций? даже при использовании функции sqlalchemy?
и, наконец, какие еще проблемы/улучшения вы можете заметить?
большое спасибо!< /п>

Подробнее здесь: https://stackoverflow.com/questions/784 ... d-security
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • SQLModel, как найти информацию о внешнем ключе при анализе классов SQLModel?
    Anonymous » » в форуме Python
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • SQLModel, как найти информацию о внешнем ключе при анализе классов SQLModel?
    Anonymous » » в форуме Python
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Не удалось установить интегрированную безопасность (параметр «Интегрированная безопасность»), когда я пытаюсь подключить
    Anonymous » » в форуме C#
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Yocto Dunfell Perforce выборочный брокерн
    Гость » » в форуме Python
    0 Ответы
    63 Просмотры
    Последнее сообщение Гость
  • Выборочный экспорт данных в JSON из средства экспорта моделей Sling в AEM?
    Гость » » в форуме JAVA
    0 Ответы
    53 Просмотры
    Последнее сообщение Гость

Вернуться в «Python»