国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Django 前后臺的數據傳遞的方法

2020-01-04 17:08:36
字體:
來源:轉載
供稿:網友

Django 從后臺往前臺傳遞數據時有多種方法可以實現。

最簡單的后臺是這樣的:

from django.shortcuts import renderdef main_page(request):  return render(request, 'index.html')

這個就是返回index.html的內容,但是如果要帶一些數據一起傳給前臺的話,該怎么辦呢?

一 view -> HTML 使用Django模版

這里是這樣:后臺傳遞一些數據給html,直接渲染在網頁上,不會有什么復雜的數據處理(如果前臺要處理數據,那么就傳數據給JS處理)

Django 代碼:

from django.shortcuts import renderdef main_page(request):  data = [1,2,3,4]  return render(request, 'index.html', {'data': data})

html使用 {{ }} 來獲取數據

<div>{{ data }}</div>

可以對可迭代的數據進行迭代:

{% for item in data%}<p>{{ item }}</p>{% endfor %}

該方法可以傳遞各種數據類型,包括list,dict等等。

而且除了 {% for %} 以外還可以進行if判斷,大小比較等等。具體的用法讀者可以自行搜索。

二 view-> JavaScript

如果數據不傳給html用,要傳給js用,那么按照上文的方式寫會有錯誤。

需要注意兩點:

1.views.py中返回的函數中的值要用 json.dumps() 處理

2.在網頁上要加一個 safe 過濾器。

代碼:

views.py

# -*- coding: utf-8 -*- import jsonfrom 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 動態刷新頁面

這個標題的意思是:網頁前臺使用Ajax發送請求,后臺處理數據后返回數據給前臺,前臺不刷新網頁動態加載數據

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 發送ajax請求,后臺處理請求并返回status, result

在 success: 后面定義回調函數處理返回的數據,需要使用 JSON.parse(data)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。

 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石屏县| 桦川县| 泗洪县| 凤庆县| 邻水| 原平市| 宜良县| 永胜县| 佛学| 交城县| 成武县| 增城市| 峨眉山市| 来凤县| 廉江市| 英德市| 汶上县| 铜鼓县| 高雄市| 英山县| 灵石县| 日喀则市| 五莲县| 钦州市| 雷州市| 甘孜县| 鸡泽县| 濉溪县| 察雅县| 安溪县| 安福县| 蓝山县| 蕉岭县| 玉山县| 宝应县| 安平县| 云龙县| 简阳市| 梁平县| 类乌齐县| 青海省|