9

Django Web サイト用の RESTful API を作成しています。私はそれを行うためにtastypieを使用しています。私の問題は、この API を介して画像やファイルを投稿する方法を設計できなかったことです。つまり、データベースにオブジェクトを作成するには、json 形式でデータを投稿しています。しかし、どうすればそのjson内にファイルを入れることができますか?

そのうちの1つがBase64形式に変換する2つの方法があることがわかりました。私のテストでは、Base64に変換すると74kbの画像が110kb-120kbになるため、使用したくありません。

では、内部にファイルを含むオブジェクトを投稿する方法を誰かに説明してもらえますか?

4

2 に答える 2

5

こちらをご覧ください: https://github.com/toastdriven/django-tastypie/issues/42

それを行うためのアプローチがあったようですが、うまく機能していません。

さまざまなソリューション( https://github.com/klipstein/django-tastypie/commit/e0f86ddffeb46c77704328a3b5899ec08e18e4ebhttps://github.com/klipstein/django-tastypie/commits/form-data)で長い間遊んだ後、ファイルを実行しています-tastypie 内での処理 すべてのブラウザーからのファイルのアップロードをサポートしたい場合、これをエレガントに解決することはできないという結論に達しました。

このフォークを見てください

https://github.com/ff0000/django-tastypie/commit/1fbc0a

于 2011-12-23T08:05:58.100 に答える
1

ファイルを JSON リクエストにシリアライズするのは、少し厄介な方法です。また、Django のファイル アップロードの自動機能の一部が失われることにもなります。たとえば、リクエストが受信されたときにファイルをメモリに書き込み、書き込みのみに切り替えるなどです。一定のサイズを超えると、ディスクに。

ファイル アップロード ビューについては、tastypie から抜け出し、ビューを明示的に記述します。

次に、標準のマルチパートフォームを使用するか、request.FILES通常どおりにファイルにアクセスするか、(より複雑に)生のファイルコンテンツを受け入れるビューを作成します

于 2011-08-25T16:31:41.677 に答える