MIMEタイプを強制する方法がわかりませんapplication/json
はFlaskのビューです。これは、デモのためにまとめた簡単なビューです。
@app.route("/")
def testView():
ret = '{"data": "JSON string example"}'
return ret
JSON文字列(変数ret
に保持されている)は他の場所から( subprocess
を使用して別のプログラムからstdoutを使用して)収集されるため、使用できません jsonify
はFlaskで提供されます。
"Returning Json" Documentation と this Stackoverflowの質問を見ましたが、運がなかったので遠い。私はしばらく見て回っていましたが、検索を続けますが、誰かがこれに遭遇した場合に備えてここで尋ねると思いました。
ありがとう。
下記の 回答を参照してください
ソリューション:
@app.route("/")
def testView():
ret = '{"data": "JSON string example"}'
resp = Response(response=ret,
status=200,
mimetype="application/json")
return resp
私はこのウェブサイトが便利だと感じました: Python&Flask でRESTful Web APIを実装する
soulseekah のように、 make_response はおそらくこの場合のより良いオプションです。次に、mimetypeプロパティを設定します。
r = make_response( data )
r.mimetype = 'application/json'
return r
使用する場合
from flask import jsonify
そしてあなたのコードで
return jsonify(somedict)
jsonify()は自動的にMIMEタイプを「application/json」に設定します
編集:
これは以前はリスクと見なされていましたが、もはやではありませんでした。Flaskも推奨を更新しました: "ECMAScript 5はこの脆弱性を閉じたため、非常に古いブラウザのみがこれらのブラウザはすべて他のより深刻な脆弱性があるため、この動作が変更され、jsonify()は配列のシリアル化をサポートするようになりました。 "http://flask.pocoo.org /docs/1.0/security/#json-security