如果一般使用Django框架或Python,是否有方法將JSON對象傳遞到Web模板的前端?例如,如果我想發送一個具有兩個數組作爲屬性的對象(假設我們說xvalues
和yvalues
),我將如何使用JavaScript或jQuery執行Ajax調用來獲取具有該對象的對象屬性?使用Django將JSON數據傳遞到前端
4
A
回答
4
補充zeekay回答,如果要發送只有一個對象,你可以做一個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上的數據(當您發送一本字典,我認爲是沒有必要的,有時引起)
6
當然,只要設置一個返回JSON並向它發出請求的視圖。這裏有一個簡單的例子:
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),
)
3
如果我理解你正確地說,你想在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)
相關問題
- 1. 傳遞數據json使用Django模板到前面(html)
- 2. iOS:將數據傳遞給前端SWRevealViewController
- 3. 如何將數據從前端jQuery傳遞到後端node.js
- 4. 的Django,JSON傳遞到前端,「海峽」沒有「iteritems」
- 5. 如何使用PostgreSQL將數據從AngularJS前端傳遞到Nodejs後端?
- 6. 將數據從MongoDB傳遞到我的前端應用程序
- 7. 將數據從Django傳遞到D3
- 8. 將DateTime數據從Django傳遞到Javascript
- 9. 將數據傳遞到Django窗體
- 10. 將JSON數據從模板傳遞到django視圖
- 11. 使用Flask將JSON數據從服務器傳遞到客戶端
- 12. 傳遞JSON數據到webservice
- 13. 從ASIHTTPRequest傳遞JSON到django
- 14. 傳遞從響應JSON數據在Django
- 15. 使用JSON將數據傳遞到ASP.NET webservice
- 16. 使用json將信息傳遞到我的數據庫
- 17. 如何使用cURL將POST數據傳遞到JSON服務器
- 18. 傳遞消息到前端
- 19. 使用Django流式傳輸json數據
- 20. 使用json數據傳遞對象
- 21. django和ExtJS如何通過JSON將數據傳遞給對方?
- 22. Django將JSON數據傳遞給靜態getJSON/Javascript
- 23. 通過JSON將Django數據庫Queryset傳遞給Highcharts
- 24. 經由JSON傳遞Django的數據到Highcharts
- 25. Django Admin將數據傳遞給change_list_result.html
- 26. 將數據從cherrypy服務器端傳遞到javascript客戶端
- 27. 將客戶端數據傳遞到服務器端方法
- 28. 將數據庫值傳遞給前端查詢字符串
- 29. 將Cherrypy中的數據傳遞給Javascript前端圖表
- 30. 將數據傳遞到ModalPopupExtender
您的意思是像將列表轉換爲json對象並將它傳遞給您的模板?或發送json作爲對Ajax請求的響應?你能再解釋一下你的問題嗎? :p – Hassek
參見上面的編輯。 – locoboy