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

首頁 > 編程 > Python > 正文

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

2020-02-16 02:01:46
字體:
來源:轉載
供稿:網友

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 松潘县| 江阴市| 瓦房店市| 望奎县| 曲阜市| 石门县| 北海市| 松原市| 岳阳县| 新宁县| 大荔县| 阿克陶县| 文登市| 蚌埠市| 云霄县| 全椒县| 铜山县| 同心县| 云安县| 洪湖市| 京山县| 阿拉善左旗| 隆德县| 平舆县| 呼伦贝尔市| 佛坪县| 兰西县| 蒙自县| 枣庄市| 湄潭县| 克拉玛依市| 滨海县| 新乡市| 团风县| 株洲市| 建阳市| 衡阳县| 腾冲县| 天峻县| 连南| 连南|