Django Ajax的使用

简介:

AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。

AJAX 不是新的编程语言,而是一种使用现有标准的新方法。

AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。

Ajax

  很多时候,我们在网页上请求操作时,不需要刷新页面。实现这种功能的技术就要Ajax!

jQuery中的ajax就可以实现不刷新页面就能向后台请求或提交数据的功能,现用它来做django中的ajax,所以先把jquey下载下来,版本越高越好。

一、ajax发送简单数据类型:

html代码:在这里我们仅发送一个简单的字符串

views.py

 1 #coding:utf8
 2 from django.shortcuts import render,HttpResponse,render_to_response
 3
 4 def Ajax(request):
 5     if request.method==‘POST‘:
 6         print request.POST
 7
 8         return HttpResponse(‘执行成功‘)
 9     else:
10         return render_to_response(‘app03/ajax.html‘)

ajax.html

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="UTF-8">
 5 <title>Ajax</title>
 6 </head>
 7 <body>
 8     <input id=‘name‘ type=‘text‘ />
 9     <input type=‘button‘ value=‘点击执行Ajax请求‘ onclick=‘DoAjax()‘ />
10
11     <script src=‘/static/jquery/jquery-3.2.1.js‘></script>
12     <script type=‘text/javascript‘>
13      function  DoAjax(){
14          var temp = $(‘#name‘).val();
15          $.ajax({
16              url:‘app03/ajax/‘,
17              type:‘POST‘,
18              data:{data:temp},
19              success:function(arg){
20                  console.log(arg);
21              },
22              error:function(){
23                  console.log(‘failed‘)
24              }
25          });
26      }
27     </script>
28 </html>

运行,结果:

二、ajax发送复杂的数据类型:

html代码:在这里仅发送一个列表中包含字典数据类型

由于发送的数据类型为列表 字典的格式,我们提前要把它们转换成字符串形式,否则后台程序接收到的数据格式不是我们想要的类型,所以在ajax传输数据时需要JSON

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="UTF-8">
 5 <title>Ajax</title>
 6 </head>
 7 <body>
 8     <input id=‘name‘ type=‘text‘ />
 9     <input type=‘button‘ value=‘点击执行Ajax请求‘ onclick=‘DoAjax()‘ />
10
11     <script src=‘/static/jquery/jquery-3.2.1.js‘></script>
12     <script type=‘text/javascript‘>
13      function  DoAjax(){
14          var temp = $(‘#name‘).val();
15          $.ajax({
16              url:‘app03/ajax/‘,
17              type:‘POST‘,
18              data:{data:temp},
19              success:function(arg){
20                  var  obj=jQuery.parseJSON(arg);
21                  console.log(obj.status);
22                  console.log(obj.msg);
23                  console.log(obj.data);
24                  $(‘#name‘).val(obj.msg);
25              },
26              error:function(){
27                  console.log(‘failed‘)
28              }
29          });
30      }
31     </script>
32 </html>

views.py

 1 #coding:utf8
 2 from django.shortcuts import render,HttpResponse,render_to_response
 3 import json
 4
 5 # Create your views here.
 6 def Ajax(request):
 7     if request.method==‘POST‘:
 8         print request.POST
 9         data  = {‘status‘:0,‘msg‘:‘请求成功‘,‘data‘:[‘11‘,‘22‘,‘33‘]}
10         return HttpResponse(json.dumps(data))
11
12     else:
13         return render_to_response(‘app03/ajax.html‘)

打印数据样式:

时间: 2024-08-03 11:59:54

Django Ajax的使用的相关文章

Django &amp; Ajax Part01

背景需求分析 使用Django+Ajax的背景情景,当用户填写一个非常详细的注册申请表的时候!用户最担心的事情应该是填表期间被人打扰,其次是希望填完表提交以后千万别出现什么差错,否则又得从新来过!因此,我们首先想到的可能会是使用Ajax来处理.Ajax的介绍通常都是基于PHP后台的编写模式,我自己从没用过PHP写过服务器,所以找工作对我来说都是一场噩梦啊! 开发环境准备 这里我将会完整的演示如何建立以及配置我们的django环境,以后我们写的各种代码如果不特别说明都是基于这个项目环境上完成的!

Django ajax Post

在web项目中,ajax运用非常频繁,今天就给大家展示下Django ajax Post的使用方法 templates 模板--------------------- index.html <html> <header></header> <body> <p>name: <input type="text" name="nickname" /></p> <input class

Django ajax MYSQL Highcharts&lt;1&gt;

Another small project with django/Ajax/Mysql/Highcharts. 看下效果图  - delivery dashboard .嘿嘿 是不是还蛮好看的. 废话不多说.在过程中遇到的问题总结: 1. Ajax URL 请求403 错误: 是由于CSRF(Cross-site request forgery跨站请求伪造请求保护)的原因.目前有三种方法 1.1 我使用的是@csrf_exempt加在相应的view前,但是这样不安全,是关闭csrf保护功能.

django+ajax实现在线聊天室

django+ajax实现在线聊天室 小项目中的一个,就是简单的聊天室 需求: 注册登陆之后才能发言 初始在聊天框中展示最近的消息 发送消息使用ajax,在后台完成消息的存储 使用轮循不断请求get新消息展示在聊天框中 Models 设计聊天消息主题的结构: class Chat(models.Model): sender = models.ForeignKey(User, related_name='has_chats') content = models.TextField() time =

Django+ajax实现页面底部加载

Django+ajax实现页面底部加载 需求:展示图片,当滚动条拖到页面底部时加载一部分图画. 问题:photo的展示使用的是django的QuerySet,对于ajax如何加载非常头痛,还专门补了一下js. 解决思路:用的取巧的办法,把photo先分页,然后ajax的load方法加载下一个页面的photo部分到当前页面来. 分页 第一步是把photo的QuerySet分页展示,我这里直接用127.0.0.1:8000/x/的url,所以在urls.py里这样写 url(r'^(?P<page>

python学习-- Django Ajax CSRF 认证

使用 jQuery 的 ajax 或者 post 之前 加入这个 js 代码:http://www.ziqiangxuetang.com/media/django/csrf.js /*====================django ajax ======*/ jQuery(document).ajaxSend(function(event, xhr, settings) { function getCookie(name) { var cookieValue = null; if (doc

django ajax提交避免csrf错误的方法

使用django 防御csrf功能时,ajax提交表单 {{ csrf_token }}加入到data里面,可避免csrf错误.位置如下红色标注: $.ajax({    :,    :{:.,},    :,    :(callback){       callback = jQuery.parseJSON(callback);       (callback.> ){          .()          .(callback[].);          =callback[].- .

Django - Ajax分页

目前总结了2种方法: 1. Ajax 分页 尼玛各种google,stackoverflow,搞了好久才总结出这个,之前使用Pagination tag loading的方式不好用,并且不能进行ajax提交请求的页面无刷新的方式去分页 1.view.py 1 from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger 2 from django.shortcuts import render 3 def xxx

Django Ajax学习一

1. 简单的加法 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <input type="text" name="a" id="a"><span>+