web-dev-qa-db-ja.com

「POSTMANを使用した画像データの投稿」

APIにPOSTデータを入力しようとしています。imageフィールドを持つモデルがあります。

image = models.ImageField()

ローカルボックスに送信しようとしている画像があります。正しく送信していますか?

{
   "id": "3", 
   "uid":"273a0d69",
   "uuid": "90",
   "image": "@/home/user/Downloads/tt.jpeg"
}
19
User_Targaryen

郵便配達員にファイルを送信する方法ではありません。あなたがしたことは、画像のパスである文字列を送信することです。

あなたがすべきことは

  1. リクエストメソッドをPOSTに設定した後、「body」タブをクリックします。
  2. フォームデータを選択します。最初の行には、キーと値という名前のテキストボックスが表示されます。キーに「イメージ」を書き込みます。デフォルトとして「テキスト」に設定されている値タイプが表示されます。ファイルにして、ファイルをアップロードします。
  3. 次に、「raw」を選択し、jsonファイルを貼り付けます。また、バイナリ選択のすぐ横に、「テキスト」がクリックされたことが表示されます。 JSONにします。

form-data section

raw section

準備ができました。

Django=ビューで、

from rest_framework.views import APIView
from rest_framework.parsers import MultiPartParser
from rest_framework.decorators import parser_classes

@parser_classes((MultiPartParser, ))
class UploadFileAndJson(APIView):

    def post(self, request, format=None):
        thumbnail = request.FILES["file"]
        info = json.loads(request.data['info'])
        ...
        return HttpResponse()
46

form-dataパネルでJSONをキー/値のペアとして設定すると、受け入れられた答えが機能します(以下の画像を参照)

enter image description here

それでも、APIを設計するのに非常にクリーンな方法かどうか疑問に思っています。 1回の呼び出しで画像とJSONの両方をアップロードすることが必須の場合は問題ないかもしれませんが、ルート(画像のアップロード用、適切なコンテンツタイプヘッダーを持つJSON本体用)を分離できる場合は、 。

8
MarAja