Django 前后台的数据传递的方法


Posted in Python onAugust 08, 2017

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

最简单的后台是这样的:

from django.shortcuts import render

def main_page(request):
  return render(request, 'index.html')

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

一 view -> HTML 使用Django模版

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

Django 代码:

from django.shortcuts import render

def 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 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 动态刷新页面

这个标题的意思是:网页前台使用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)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中自定义函数的教程
Apr 27 Python
python安装以及IDE的配置教程
Apr 29 Python
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
May 09 Python
详解Python中的strftime()方法的使用
May 22 Python
详解Python中的array数组模块相关使用
Jul 05 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
Feb 03 Python
pyqt5 实现多窗口跳转的方法
Jun 19 Python
python命令行参数用法实例分析
Jun 25 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
Jul 26 Python
Python异常模块traceback用法实例分析
Oct 22 Python
python 星号(*)的多种用途
Sep 21 Python
Pytho爬虫中Requests设置请求头Headers的方法
Sep 22 Python
关于python pyqt5安装失败问题的解决方法
Aug 08 #Python
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
Aug 08 #Python
利用python打印出菱形、三角形以及矩形的方法实例
Aug 08 #Python
Python正则表达式非贪婪、多行匹配功能示例
Aug 08 #Python
关于Python 3中print函数的换行详解
Aug 08 #Python
Python tkinter模块中类继承的三种方式分析
Aug 08 #Python
Python实现注册登录系统
Aug 08 #Python
You might like
一个PHP并发访问实例代码
2012/09/06 PHP
PHP的preg_match匹配字符串长度问题解决方法
2014/05/03 PHP
WordPress的文章自动添加关键词及关键词的SEO优化
2016/03/01 PHP
PHP带节点操作的无限分类实现方法详解
2016/11/09 PHP
jquery设置控件位置的方法
2013/08/21 Javascript
Ext修改GridPanel数据和字体颜色、css属性等
2014/06/13 Javascript
jQuery后代选择器用法实例
2014/12/23 Javascript
JS弹出可拖拽可关闭的div层完整实例
2015/02/13 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
2016/01/23 Javascript
用js实现博客打赏功能
2016/10/24 Javascript
jQuery实现字符串全部替换的方法
2016/12/12 Javascript
JS利用cookies设置每隔24小时弹出框
2017/04/20 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
2017/04/27 Javascript
jQuery插件开发发送短信倒计时功能代码
2017/05/09 jQuery
NodeJS创建最简单的HTTP服务器
2017/05/15 NodeJs
Scala解析Json字符串的实例详解
2017/10/11 Javascript
Angular实现的内置过滤器orderBy排序与模糊查询功能示例
2017/12/29 Javascript
vue 实现在函数中触发路由跳转的示例
2018/09/01 Javascript
微信小程序自定义多列选择器使用详解
2019/06/21 Javascript
[59:08]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第一局
2016/02/27 DOTA
Python线程详解
2015/06/24 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
2017/12/08 Python
Python Django Vue 项目创建过程详解
2019/07/29 Python
python 动态调用函数实例解析
2019/10/21 Python
Python连接字符串过程详解
2020/01/06 Python
Python MOCK SERVER moco模拟接口测试过程解析
2020/04/13 Python
如何实现更换Jupyter Notebook内核Python版本
2020/05/18 Python
实例讲解CSS3中的box-flex弹性盒属性布局
2016/06/09 HTML / CSS
经典婚礼主持词
2014/03/13 职场文书
社区爱国卫生月活动总结
2014/06/30 职场文书
高速铁道技术专业求职信
2014/08/09 职场文书
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
2014年精神文明工作总结
2014/12/23 职场文书
学习型家庭事迹材料(2016精选版)
2016/02/29 职场文书
大学生暑期社会实践的个人总结!
2019/07/17 职场文书
婚礼必备主持词范本!
2019/07/23 职场文书