2016-10-14 3 views
1

Я создал приложение Flask в том, что я использую RequestParser проверить тип данных поля ввода, как показано нижепитон-RequestParser не возвращает ошибку, когда различные тип данных отправляется в запросе

parser = reqparse.RequestParser() 
parser.add_argument('article_id',type=str,required=True, help='SUP-REQ-ARTICLEID') 
parser.add_argument('description',type=str,required=True, help='SUP-REQ-DESCRIPTION') 
parser.add_argument('userid',type=str,required=True, help='SUP-REQ-USERID') 

мой JSON вход с почтальоном, как ниже

{ 
    "article_id": 2, 
    "description":"some description", 
    "userid":1 
} 

так в запросе JSon первого и третьего поля целое число, а в поиске синтаксического анализа тип данных я упоминается как «ул»

, когда я пытался т его приложение и отправить запрос от postman -request обрабатывается и не бросает никаких ошибок при проверке RequestParser

ответ

3

Сначала Почтальон создает регулярную запись HTTP из ваших данных. И HTTP-сообщения выглядят так:

article_id=2&description=some%20description&userid=1 

Нет информации типа, это простая старая кодировка URL. Все - это строка в URL-адресе, с & и = в качестве разделителей.

Все, что может сделать RequestParser, это преобразовать типы для вас, начиная от строки и заканчивая чем-то другим. Вот почему type=str по умолчанию. Парсер просто даст вам строки для article_id и userid и все.

Ошибки возникают, когда аргумент не может преобразовать в целевой тип. Установите type=int в количестве description, и это даст вам ошибку.