一般的にDjangoフレームワークまたはPythonを使用する場合、WebテンプレートのフロントエンドにJSONオブジェクトを渡す方法はありますか?Djangoを使用してフロントエンドにJSONデータを渡す
たとえば、プロパティとして2つの配列を持つオブジェクトを送信する場合は(たとえば、xvalues
とyvalues
)、JavaScriptまたはjQueryを使用してAjax呼び出しを実行してオブジェクトを取得する方法プロパティ?
一般的にDjangoフレームワークまたはPythonを使用する場合、WebテンプレートのフロントエンドにJSONオブジェクトを渡す方法はありますか?Djangoを使用してフロントエンドにJSONデータを渡す
たとえば、プロパティとして2つの配列を持つオブジェクトを送信する場合は(たとえば、xvalues
とyvalues
)、JavaScriptまたはjQueryを使用してAjax呼び出しを実行してオブジェクトを取得する方法プロパティ?
、あなたは例えば、JSONダンプを行うことができる唯一のオブジェクトを送信する場合:
from django.utils import simplejson
def my_ajax_view(request):
if not request.is_ajax():
raise Http404
data_dict = getmydata() #lets supose is a dict
return HttpResponse(simplejson.dumps(data_dict))
あなた経由でそのデータを受信しますその方法成功し、あなたがそれで何でもしてください。
私はあなたを理解していればあなたは(あなたが私は必要ないと思い辞書を送信するときに時々起こす)あなたがあなたの応答を受信したときに、時にはあなたがデータにJSON.parseを行う必要があります、あまりにも
確かに、JSONを返すビューを設定してリクエストしてください。ここでは簡単な例です:
zeekay答えを補完import json
from django.http import HttpResponse
from django.template import Template, Context
def ajax(request):
"""returns json response"""
return HttpResponse(json.dumps({'foo': 'bar'}), mimetype='application/json')
def index(request):
"""simple index page which uses jquery to make a single get request to /ajax, alerting the value of foo"""
t = Template("""
<!doctype html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script type="text/javascript">
$.get('/ajax/', function(data) {
alert(data['foo']);
});
</script>
</head>
</html>""")
return HttpResponse(t.render(Context()))
# urlconf
urlpatterns = patterns('',
(r'^$', index),
(r'^ajax/', ajax),
)
をリストを介して送信することができます正しく、HTML出力にいくつかのJSONをレンダリングしたいとします。これを行うには
、ビューからテンプレートにJSONエンコードオブジェクトを渡す:
views.py
:
import json
def myview(request):
obj = {"a": 1, "b": 2}
return render_to_response("template.html", {"obj_as_json": json.dumps(obj)})
template.html
:
<html>
<head>
<script type="text/javascript">
var obj = {{ obj_as_json }};
</script>
</head>
...
</html>
としてレンダリングされます:
は、...
<script type="text/javascript">
var obj = {"a": 1, "b": 2};
...
json.dumps
は、単純なデータ型を含む辞書でのみ機能することに注意してください。 Djangoはモデルオブジェクトをjsonにシリアライズするためのサポートを持っています。
from django.core import serializers
obj_as_json = serializers.serialize("json", my_model_object)
リストをjsonオブジェクトに変換してテンプレートに渡すようなものですか?またはjsonをAjaxリクエストへの応答として送信しますか?もう少しあなたの質問を説明できますか? :p – Hassek
上記の編集内容を参照してください。 – locoboy