Flask не анализирует правильные аргументы в http-сообщении - PullRequest
1 голос
/ 04 мая 2020

У меня сервер flask, работающий через gunicorn, и nginx, который не анализирует аргументы сообщений http. Основная проблема в том, что некоторые символы, такие как «+», не читаются.

Например, я попадаю на nginx log:

[04/May/2020:11:31:46 +0200] "GET /?action=destroy&interface=web&path=ASIA/prueba_%20+%20prueba.txt&type=file&size=5&at=2020-05-04T05:31:35-04:00 HTTP/1.1" 200 0

Затем в журнале gunicorn:

[04/May/2020:11:31:46 +0200] "GET /?action=destroy&interface=web&path=ASIA/prueba_%20+%20prueba.txt&type=file&size=5&at=2020-05-04T05:31:35-04:00 HTTP/1.0" 200 0

Но на flask, если я пытаюсь прочитать аргумент пути http-сообщения с запросами.args.get ('path'), я получаю: ImmutableMultiDict([('action', 'destroy'), ('interface', 'web'), ('path', 'ASIA/prueba_ prueba.txt'), ('type', 'file'), ('size', '5'), ('at', '2020-05-04T05:31:35-04:00')])

Итак, я получаю «prueba_ prueba.txt» вместо «prueba_ + prueba.txt» в переменной пути.

Есть ли способ избежать этого на flask?

Спасибо!

1 Ответ

0 голосов
/ 04 мая 2020

+ символы должны быть экранированы в URL, иначе они интерпретируются как пробелы. Попробуйте path=ASIA/prueba_%20%2B%20prueba.txt.

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