Django 前后臺的數(shù)據(jù)傳遞的方法
Django 從后臺往前臺傳遞數(shù)據(jù)時有多種方法可以實現(xiàn)。
最簡單的后臺是這樣的:
from django.shortcuts import render def main_page(request): return render(request, 'index.html')
這個就是返回index.html的內(nèi)容,但是如果要帶一些數(shù)據(jù)一起傳給前臺的話,該怎么辦呢?
一 view -> HTML 使用Django模版
這里是這樣:后臺傳遞一些數(shù)據(jù)給html,直接渲染在網(wǎng)頁上,不會有什么復(fù)雜的數(shù)據(jù)處理(如果前臺要處理數(shù)據(jù),那么就傳數(shù)據(jù)給JS處理)
Django 代碼:
from django.shortcuts import render def main_page(request): data = [1,2,3,4] return render(request, 'index.html', {'data': data})
html使用 {{ }}
來獲取數(shù)據(jù)
<div>{{ data }}</div>
可以對可迭代的數(shù)據(jù)進行迭代:
{% for item in data%} <p>{{ item }}</p> {% endfor %}
該方法可以傳遞各種數(shù)據(jù)類型,包括list,dict等等。
而且除了 {% for %} 以外還可以進行if判斷,大小比較等等。具體的用法讀者可以自行搜索。
二 view-> JavaScript
如果數(shù)據(jù)不傳給html用,要傳給js用,那么按照上文的方式寫會有錯誤。
需要注意兩點:
1.views.py中返回的函數(shù)中的值要用 json.dumps()
處理
2.在網(wǎng)頁上要加一個 safe 過濾器。
代碼:
views.py
# -*- coding: utf-8 -*- import json from django.shortcuts import render def main_page(request): list = ['view', 'Json', 'JS'] return render(request, 'index.html', { 'List': json.dumps(list), })
JavaScript部分:
var List = {{ List|safe }};
三 JavaScript Ajax 動態(tài)刷新頁面
這個標題的意思是:網(wǎng)頁前臺使用Ajax發(fā)送請求,后臺處理數(shù)據(jù)后返回數(shù)據(jù)給前臺,前臺不刷新網(wǎng)頁動態(tài)加載數(shù)據(jù)
Django 代碼:
def scene_update_view(request): if request.method == "POST": name = request.POST.get('name') status = 0 result = "Error!" return HttpResponse(json.dumps({ "status": status, "result": result }))
JS 代碼:
function getSceneId(scece_name, td) { var post_data = { "name": scece_name, }; $.ajax({ url: {% url 'scene_update_url' %}, type: "POST", data: post_data, success: function (data) { data = JSON.parse(data); if (data["status"] == 1) { setSceneTd(data["result"], scece_name, td); } else { alert(data["result"]); } } }); }
JS 發(fā)送ajax請求,后臺處理請求并返回status, result
在 success: 后面定義回調(diào)函數(shù)處理返回的數(shù)據(jù),需要使用 JSON.parse(data)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python+OpenCV進行不規(guī)則多邊形ROI區(qū)域提取
ROI即感興趣區(qū)域。機器視覺、圖像處理中,從被處理的圖像以方框、圓、橢圓、不規(guī)則多邊形等方式勾勒出需要處理的區(qū)域,稱為感興趣區(qū)域,ROI。本文將利用Python和OpenCV實現(xiàn)不規(guī)則多邊形ROI區(qū)域提取,需要的可以參考一下2022-03-03PyTorch實現(xiàn)手寫數(shù)字識別的示例代碼
本文主要介紹了PyTorch實現(xiàn)手寫數(shù)字識別的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下<BR>2022-05-05python算法測試結(jié)果自動保存到excel表格的實現(xiàn)步驟
我們在進行算法評估是通常會針對每個樣本的算法處理結(jié)果進行統(tǒng)計,例如每個樣本正確預(yù)測數(shù)量、漏檢數(shù)量和誤檢數(shù)量、精度等,本文小編將給大家介紹python算法測試結(jié)果自動保存到excel表格的實現(xiàn)步驟,感興趣的朋友可以參考下2023-12-12