экранирование специальных символов с использованием sqlalchemy - PullRequest
5 голосов
/ 16 июля 2011

Я храню имена файлов и пути к файлам в mySQL. Извлечение их из базы данных с использованием выражения LIKE требует, чтобы я экранировал все разрешенные символы имени файла, которые конфликтуют со специальными символами mysql. Я счастлив, что просто использую метод python string.replace (), но мне было интересно, есть ли более стандартный или встроенный метод очистки файловых путей с помощью SQLalchemy или работы с файловыми путями в mySQL вообще.

Редактировать: немного больше информации. Мне нужно, чтобы решение было ОС-независимым и устоявшимся. Это не должно быть реализовано в SA. Я приму любую процедуру для кодирования, которая работает. для этого мне нужен список всех символов, которые нужно экранировать, и разумный выбор символа экранирования.

Ответы [ 4 ]

0 голосов
/ 20 сентября 2011

Как я знаю, в SQLAlchemy нет того, что вы ищете.Просто иди basestring.replace() метод самостоятельно.

0 голосов
/ 13 сентября 2011

SQLAlchemy действительно дезинфицирует вас, если вы будете использовать регулярные запросы.Может быть, проблема, которую вы используете как предложение.Вроде требуется сложение escape для таких символов: _%.Таким образом, вам понадобится заменить методы, если вы хотите заключить в кавычки как выражение.

0 голосов
/ 15 сентября 2011

Вам не нужно ничего делать, SQLAlchemy сделает это за вас.

0 голосов
/ 17 июля 2011

Зачем вам нужно экранировать пути к файлам? Поскольку вы не пишете запросы выбора / вставки вручную, SQLAlchemy позаботится о экранировании, когда он сгенерирует запрос внутри.

Пути к файлам могут быть вставлены в том виде, в каком они есть в базе данных.

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