необработанный запрос Python Peewee без экранирования символов - PullRequest
0 голосов
/ 05 сентября 2018

Есть ли способ предотвратить экранирование обратной косой черты в python peewee (peewee-2.8.8) ORM?

Я хотел бы выполнить запрос в базе данных MySQL:

SHOW MASTER STATUS\G

Часть "\ G" необходима! Мне нужны результаты в вертикальной форме.

Проблема в том, что peewee всегда избегает обратной косой черты (\), поэтому в MySQL он заканчивается следующим образом:

SHOW MASTER STATUS\\G

и, конечно, MySQL выдает ошибку:

 "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\\G' at line 1"

Я пытался использовать простой метод execute_sql:

cursor = RaDatabase.execute_sql('SHOW MASTER STATUS\G')

а также «сырой» метод:

query = BaseModel.raw('SHOW MASTER STATUS\G')
result = query.execute()

но оба заканчивались экранирующими символами.

1 Ответ

0 голосов
/ 05 сентября 2018

Вы пытались использовать "сырую" строку?

cursor = RaDatabase.execute_sql(r'SHOW MASTER STATUS\G')

Для чего бы то ни было, все, что вы передаете в .execute_sql (), по существу передается драйверу MySQL (pymysql, или что вы используете). Сам по себе Peewee не спасается.

...