Django 从后台往前台传递数据时有多种方法可以实现。

最简单的后台是这样的:

from django.shortcuts import render

defmain_page(request):

return render(request, ‘index.html‘)

这个就是返回index.html的内容,但是如果要带一些数据一起传给前台的话,该怎么办呢?

一 view -> HTML 使用Django模版

这里是这样:后台传递一些数据给html,直接渲染在网页上,不会有什么复杂的数据处理(如果前台要处理数据,那么就传数据给JS处理)

Django 代码:

from django.shortcuts import render

defmain_page(request):

data = [1,2,3,4]

return render(request, ‘index.html‘, {‘data‘: data})

html使用 {{ }} 来获取数据

{{ data }}

可以对可迭代的数据进行迭代:

{% for item in data%}

{{ item }}

{% endfor %}

该方法可以传递各种数据类型,包括list,dict等等。

而且除了 {% for %} 以外还可以进行if判断,大小比较等等。具体的用法读者可以自行搜索。

二 view-> JavaScript

如果数据不传给html用,要传给js用,那么按照上文的方式写会有错误。

需要注意两点:

views.py中返回的函数中的值要用 json.dumps() 处理

在网页上要加一个 safe 过滤器。

代码:

views.py

# -*- coding: utf-8 -*-

import json

from django.shortcuts import render

defmain_page(request):

list = [‘view‘, ‘Json‘, ‘JS‘]

return render(request, ‘index.html‘, {

‘List‘: json.dumps(list),

})

JavaScript部分:

var List = {{ List|safe }};

三 JavaScript Ajax 动态刷新页面

这个标题的意思是:网页前台使用Ajax发送请求,后台处理数据后返回数据给前台,前台不刷新网页动态加载数据

Django 代码:

defscene_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 代码:

functiongetSceneId(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)

python后端数据发送到前端_Python Django 前后端数据交互 之 后端向前端发送数据...相关推荐

  1. python获取app信息的库_Python学习教程:另辟蹊径,appium抓取app应用数据了解一下...

    作为爬虫工程师,没有价格不知道selenium的. 什么是selenium? Selenium原本是一个用于Web应用程序自动化测试工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一 ...

  2. python合并word表格单元格_Python实战009:读取Word文档中的表格数据及表格合并问题解决...

    同事最近被安排整理资料,主要工作室将文档中的表格数据提取出来并整理层Excel表格供我们FII刀具商城进行资料维护.由于刀具的种类繁多且规格无数,所以要处理的数据量相当的庞大.人工核对整理既费时又费力 ...

  3. python写excel文件不覆盖_python excel多sheet存储,同sheet不覆盖追加数据

    1.多sheet存储 方式一:读取数据库并存入excel多个sheet import cx_Oracle import pandas as pd conn_oracle = cx_Oracle.con ...

  4. python电商项目源码_Python Django(WEB电商项目构建)

    (坚持每一天,就是成功) Python Django Web框架,Django是一个开放源代码的Web应用框架,由Python写成.采用了MTV的框架模式,即模型M,模板T和视图V组成. 安装Pyth ...

  5. python ipo是什么意思呢_python ipo模型是指什么_后端开发

    PHP如何获取不带命名空间的类名_后端开发 PHP 获取不带命名空间的类名 IPO(Input Processing Output)模式,即输入数据→处理数据→输出结果.例如: # month.py ...

  6. python读数据库的通信协议是_Python以太坊区块链交互将数据存入数据库

    关于区块链介绍性的研讨会通常以易于理解的点对点网络和银行分类账这类故事开头,然后直接跳到编写智能合约,这显得非常突兀.因此,想象自己走进丛林,想象以太坊区块链是一个你即将研究的奇怪生物.今天我们将观察 ...

  7. python数据录入系统数据库处理导出_Python以太坊区块链交互将数据存入数据库

    关于区块链介绍性的研讨会通常以易于理解的点对点网络和银行分类账这类故事开头,然后直接跳到编写智能合约,这显得非常突兀.因此,想象自己走进丛林,想象以太坊区块链是一个你即将研究的奇怪生物.今天我们将观察 ...

  8. python写微信小程序商城_Python(Django 2.x)+Vue+Uniapp微信小程序商城开发视频教程

    重要的事儿说在前面: 这并非是一个基础课程,请没有相关技术基础知识的同学先学一下基础知识. 本次分享虽然使用Uni-app这个"开发一次,多端覆盖"的框架,但只会给大家分享演示&q ...

  9. python模型的属性是什么_python – Django:为什么Django模型字段的类属性?

    不,原因与此相同: >>> class Foo(object): ... bar = 'Foo attribute' ... >>> f = Foo() >& ...

最新文章

  1. shell中几个特殊的符号
  2. linux路由命令大全,常用Linux路由命令
  3. Mariadb修改root密码
  4. 伪类 伪元素 如何区分
  5. gRPC学习记录(二)--Hello World
  6. jetty部署多个web应用及将jetty配置成服务
  7. 乔布斯亲自致电原报道记者否认自己癌症复发
  8. 39个史诗级奇葩代码注释,程序不会崩,但程序员会
  9. 爱上MVC~业务层刻意抛出异常,全局异常的捕获它并按格式返回
  10. 微信H5支付(基于Java实现微信H5支付)
  11. 2018 OpenInfra Days China 大咖来袭——开源,我们是认真的
  12. 强悍的 vim —— 可视模式(visual mode)
  13. 手机号码归属地查询数据库下载
  14. zabbix-8:zabbix-api 获取hostid
  15. HTAP的下一步?SoTP初探(上):从“大”数据到“小”而“宽”数据
  16. Win10 启动英雄联盟后系统没声音 英雄联盟bug
  17. html语言的title在哪,网页中title标题使用地方有哪些
  18. 三维扫描技术在精密注塑件尺寸检测中的应用
  19. 动态规划 - 整数拆分
  20. 机器学习实战:信用卡欺诈检测

热门文章

  1. 为什么年事已高的我还在编程?
  2. 指尖上的艺术——如何运用代码发挥无限创意
  3. 科目三电子路考易错细节总结
  4. 浅谈PPM (Project Portfolio Management)
  5. 实体类中存在List集合,怎么在xml文件中,对应
  6. WPF应用程序内嵌网页
  7. Java面试——线程池
  8. C++编译报错:重复定义
  9. [转]char * 和字符数组
  10. Oracle DB优化