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编程语言的35个与众不同之处(语言特征和使用技巧)
Jul 07 Python
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
Jul 07 Python
python 连接各类主流数据库的实例代码
Jan 30 Python
Python实现的维尼吉亚密码算法示例
Apr 12 Python
简单分析python的类变量、实例变量
Aug 23 Python
python语言线程标准库threading.local解读总结
Nov 10 Python
python在不同条件下的输入与输出
Feb 13 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
Sep 01 Python
mac安装python3后使用pip和pip3的区别说明
Sep 01 Python
Python爬虫之Selenium设置元素等待的方法
Dec 04 Python
python通过cython加密代码
Dec 11 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第一季视频教程(李炎恢+php100 不断更新)
2011/05/29 PHP
Pro JavaScript Techniques学习笔记
2010/12/28 Javascript
javascript结合html5 canvas实现(可调画笔颜色/粗细/橡皮)的涂鸦板
2013/04/27 Javascript
js中substring和substr的定义和用法
2014/05/05 Javascript
JavaScript实现基于十进制的四舍五入实例
2015/07/17 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
2015/08/21 Javascript
浅谈angular.js中实现双向绑定的方法$watch $digest $apply
2015/10/14 Javascript
基于jQuery实现响应式圆形图片轮播特效
2015/11/25 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
2016/09/20 Javascript
简单明了区分escape、encodeURI和encodeURIComponent
2018/05/26 Javascript
Angular ElementRef简介及其使用
2018/10/01 Javascript
微信小程序使用map组件实现路线规划功能示例
2019/01/22 Javascript
vue路由插件之vue-route
2019/06/13 Javascript
VueJS实现用户管理系统
2020/05/29 Javascript
前端 javascript 实现文件下载的示例
2020/11/24 Javascript
[01:41]DOTA2超级联赛专访YYF 称一辈子难忘TI2
2013/05/28 DOTA
[37:45]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第二场 12.09
2020/12/11 DOTA
简要讲解Python编程中线程的创建与锁的使用
2016/02/28 Python
Python实现将SQLite中的数据直接输出为CVS的方法示例
2017/07/13 Python
基于Python实现的微信好友数据分析
2018/02/26 Python
Python字典中的键映射多个值的方法(列表或者集合)
2018/10/17 Python
Python箱型图绘制与特征值获取过程解析
2019/10/22 Python
python求一个字符串的所有排列的实现方法
2020/02/04 Python
celery在python爬虫中定时操作实例讲解
2020/11/27 Python
基于css3的属性transition制作菜单导航效果
2015/09/01 HTML / CSS
UGG英国官方网站:UGG UK
2018/02/08 全球购物
波兰灯具、照明和LED购物网站:Lampy.pl
2019/03/11 全球购物
Java的基础面试题附答案
2016/01/10 面试题
餐厅考勤管理制度
2014/01/28 职场文书
授权委托书格式
2014/07/31 职场文书
中国文明网向国旗敬礼活动精彩寄语2014
2014/09/27 职场文书
2015年五一劳动节演讲稿
2015/03/18 职场文书
行政人事主管岗位职责
2015/04/11 职场文书
奖学金主要事迹范文
2015/11/04 职场文书
Python中的嵌套循环详情
2022/03/23 Python
SQL Server携程核心系统无感迁移到MySQL实战
2022/06/01 SQL Server