2016-10-14 7 views
1

に送信されたとき、私は郵便配達からの私のJSON入力が似ているのpython-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') 

以下のように私は、入力フィールドのデータ型を確認するためにRequestParserを使用していますその中でフラスコアプリケーションを作成しているエラーを返していません第JSON要求にそう

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

以下と3番目のフィールドは整数であり、要求パーサでiはTを実行したとき、私は「STR」

として言及しているデータ型彼のアプリケーションからのリクエストを送信し、postman -requestからリクエストを送信すると、RequestParserの検証でエラーがスローされずに処理されます。

答えて

3

まず、Postmanはデータから通常のHTTP投稿を作成します。 HTTP投稿は次のようになります。

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

普通のURLエンコーディングです。 すべてはURLの文字列で、区切り文字として&=です。

すべてのRequestParserは、あなたのための型を文字列から別のものに変換することができます。それはまた、type=strがデフォルトの理由です。パーサーは単にarticle_iduseridの文字列を与えるだけです。

引数をターゲットタイプに変換できない場合にエラーが発生します。 type=intdescriptionに設定すると、エラーが表示されます。

関連する問題