日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django 前后台的数据传递

發(fā)布時間:2025/6/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django 前后台的数据传递 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Django 從后臺往前臺傳遞數(shù)據(jù)時有多種方法可以實現(xiàn)。

最簡單的后臺是這樣的:

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

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

一 ? view -> HTML 使用Django模版

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

Django 代碼:

from django.shortcuts import renderdef 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用,那么按照上文的方式寫會有錯誤。
需要注意兩點:

  • views.py中返回的函數(shù)中的值要用?json.dumps()?處理
  • 在網(wǎng)頁上要加一個 safe 過濾器。
  • 代碼:
    views.py

    # -*- coding: utf-8 -*-import json from django.shortcuts import renderdef 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 = 0result = "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)

    文章轉(zhuǎn)自:?http://www.cnblogs.com/psklf/archive/2016/05/30/5542612.html

    轉(zhuǎn)載于:https://www.cnblogs.com/zongfa/p/7699279.html

    總結(jié)

    以上是生活随笔為你收集整理的Django 前后台的数据传递的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。