框架----Django之Ajax全套实例

1. 浏览器访问

http://127.0.0.1:8000/index/

http://127.0.0.1:8000/fake_ajax/

http://127.0.0.1:8000/index/jsonp/

http://127.0.0.1:8000/autohome/

2. urls

from django.conf.urls import url
from django.contrib import admin
from app01 import views

urlpatterns = [
    url(r‘^admin/‘, admin.site.urls),
    url(r‘^index/‘, views.index),
    url(r‘^add1/‘, views.add1),
    url(r‘^add2/‘, views.add2),
    url(r‘^autohome/‘, views.autohome),
    url(r‘^fake_ajax/‘, views.fake_ajax),
    url(r‘^jsonp/‘, views.jsonp),
]

3. views

 1 from django.shortcuts import render,HttpResponse,redirect
 2
 3 def index(request):
 4     return render(request,‘index.html‘)
 5
 6
 7 def add1(request):
 8     a1 = int(request.POST.get(‘i1‘))
 9     a2 = int(request.POST.get(‘i2‘))
10     return HttpResponse(a1 + a2)
11
12 def add2(request):
13     if request.method == ‘GET‘:
14         i1 = int(request.GET.get(‘i1‘))
15         i2 = int(request.GET.get(‘i2‘))
16         print(‘add2....‘)
17         return HttpResponse(i1 + i2)
18     else:
19         print(request.POST)
20         print(request.body)
21         return HttpResponse(‘...‘)
22
23
24 def autohome(request):
25     return render(request,‘autohome.html‘)
26
27
28 def fake_ajax(request):
29     if request.method == ‘GET‘:
30         return render(request,‘fake_ajax.html‘)
31     else:
32         print(request.POST)
33         return HttpResponse(‘返回值‘)
34
35
36 def jsonp(request):
37     return render(request,‘jsonp.html‘)

views

4. templates

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title></title>
 6 </head>
 7 <body>
 8     <h1>首页</h1>
 9     <input type="text" id="i1" />
10     +
11     <input type="text" id="i2" />
12     =
13     <input type="text" id="i3" />
14
15     <input type="button" id="btn1" value="jQuery Ajax" onclick="add1();" />
16     <input type="button" id="btn2" value="原生Ajax" onclick="add2();" />
17
18     <script src="/static/jquery-3.2.1.js"></script>
19     <script>
20     /* $$$$$$$ jQuery Ajax $$$$$$$ */
21         function add1() {
22             $.ajax({
23                 url:‘/add1/‘,
24                 type:‘POST‘,
25                 data:{‘i1‘:$(‘#i1‘).val(),‘i2‘:$(‘#i2‘).val()},
26                 success:function (arg) {
27                     $(‘#i3‘).val(arg);
28                 }
29             })
30
31         }
32
33
34      /* $$$$$$$ 原生Ajax $$$$$$$ */
35         function add2() {
36     /* $$$$$$$  GET方式  $$$$$$$ */
37         /*    var xhr = new XMLHttpRequest();
38             xhr.onreadystatechange = function () {
39                 if(xhr.readyState == 4){
40                     alert(xhr.responseText);
41                 }
42             };
43             xhr.open(‘GET‘,‘/add2/?i1=12&i2=19‘);
44             xhr.send();  */
45
46
47
48     /* $$$$$$$  POST方式  $$$$$$$ */
49             var xhr = new XMLHttpRequest();
50             xhr.onreadystatechange = function () {
51                 if(xhr.readyState == 4){
52                     alert(xhr.responseText);
53                 }
54             };
55             xhr.open(‘POST‘,‘/add2/‘);
56             xhr.setRequestHeader(‘Content-Typr‘,‘application/x-www-form-urlencoded‘);
57             xhr.send(‘i1=12&i2=19‘);
58         }
59     </script>
60 </body>
61 </html>

index.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title></title>
 6 </head>
 7 <body>
 8     <div>
 9         <input type="text" id="txt1" />
10         <input type="button" value="查看" onclick="changeScr();" />
11     </div>
12     <iframe id="ifr" style="width: 1200px;height: 1000px;" src="http://www.autohome.com.cn"></iframe>
13
14     <script>
15         function changeScr() {
16             var inp = document.getElementById(‘txt1‘).value;
17             document.getElementById(‘ifr‘).src = inp;
18         }
19     </script>
20 </body>
21 </html>

autohome.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title></title>
 6 </head>
 7 <body>
 8     <form id="f1" method="POST" action="/fake_ajax/" target="ifr">
 9         <iframe id="ifr" name="ifr" style="display: none;"></iframe>
10         <input type="text" name="user" />
11         <a onclick="submitForm();">提交</a>
12     </form>
13
14     <script>
15         function submitForm() {
16             document.getElementById(‘ifr‘).onload = loadIframe;
17             document.getElementById(‘f1‘).submit();
18         }
19         function loadIframe() {
20             var content = document.getElementById(‘ifr‘).contentWindow.document.body.innerText;
21             alert(content);
22         }
23     </script>
24 </body>
25 </html>

fake_ajax.html

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title></title>
 6     <script src="/static/commons.js"></script>
 7 </head>
 8 <body>
 9     <a onclick="sendMsg();">发送</a>
10     <script>
11         function sendMsg() {
12             var tag = document.createElement(‘scaript‘);
13             tag.src = "http://www.jxntv.cn/data/jmd-jxtv2.html?callback=list&_=1454376870403";
14             document.head.appendChild(tag);
15         }
16     </script>
17 </body>
18 </html>

jsonp.html

5. static

1 function list(arg){
2     console.log(arg);
3 }

commons

1 f1(123)

commons2

时间: 2024-08-06 01:19:53

框架----Django之Ajax全套实例的相关文章

Django(十七)Ajax全套

http://www.cnblogs.com/wupeiqi/articles/5703697.html - 文件上传        - 普通上传        - 自定义页面上传按钮        - 基于Form做上传        - Ajax上传文件????? 一,上传文件 from django.shortcuts import render,redirect, HttpResponse # Create your views here. def update(request): if

Django(十九)Ajax全套

参考博客:http://www.cnblogs.com/wupeiqi/articles/5703697.html 提交: - Form - Ajax 一.Ajax,偷偷向后台发请求 - XMLHttpRequest - 手动使用 - jQuery - “伪”Ajax - iframe标签 - form表单 二.Ajax上传文件 - jQuery - 原生 以上两种方式可利用formData对象,来封装用户提交的数据 - Iframe+Form ******Iframe+Form*******

框架基础:ajax设计方案(一)---集成核心请求

框架基础:ajax设计方案(一)---集成核心请求 框架基础:ajax设计方案(一)---集成核心请求 报告,我要说话!xp被历史淘汰了,IE6 say goodbye了,太TM开心了,从此不要兼容IE6了,哈哈哈哈哈哈 报告,我要说话!IE这sb为啥不早点被杀掉呢,找工作听说要兼容IE,立马软了,唉唉唉唉唉唉 报告,我要说话!Jquery太丰富了,老子只用了几个功能,妈的,太不划算了,啊啊啊啊啊啊 ...... 好了,言归正传.对于想到整理ajax设计方案,原因如下: 从资源合理利用的角度以及

框架基础:ajax设计方案(三)---集成ajax上传技术

之前发布了ajax的通用解决方案,核心的ajax发布请求,以及集成了轮询.这次去外国网站逛逛,然后发现了ajax level2的上传文件,所以就有了把ajax的上传文件集成进去的想法,ajax方案的level2的改进就不介绍了,不清楚的可到前几篇博客去看看.我们直接切入主题. 概念介绍: 1. js的FormData:js中在新的版本中已经支持了FormData对象,可以初始化一个空的form,或者初始化已经存在的form,浏览器测试代码. 2. 浏览器的支持:浏览器已支持input=file的

python运维开发(十七)----jQuery续(示例)web框架django

内容目录: jQuery示例 前端插件 web框架 Django框架 jQuery示例 dom事件绑定 jQuery事件绑定 jQuery循环break jQuery扩展方法 jQuery自定义扩展的方法 jquery扩展实现基本验证 支持是否为空 长度 正则表达式 定义正则表达式 reg = /正则表达式/ ***** g i m ==> 特殊 利用正则匹配 reg.test(字符串) ***** reg.exec(字符串) 全局 非全局字符串三个方法: search match replac

Web框架——Django笔记

Web框架——Django笔记 MVC和MTV MVC:Model.View.Controller MTV:Model.Template.View Django——MTV 1.创建Django程序   (注:创建前需注意配置Django环境变量,python2.7和3.5环境变量) a.命令(使用cmd命令创建) django-admin startproject mysite      创建project cd mysite python manage.py startapp app01  

python Django之Ajax

python Django之Ajax AJAX,Asynchronous JavaScript and XML (异步的JavaScript和XML),一种创建交互式网页应用的网页开发技术方案. 异步的JavaScript:使用 [JavaScript语言] 以及 相关[浏览器提供类库] 的功能向服务端发送请求,当服务端处理完请求之后,[自动执行某个JavaScript的回调函数].PS:以上请求和响应的整个过程是[偷偷]进行的,页面上无任何感知. XMLXML是一种标记语言,是Ajax在和后台

Django+JQuery+Ajax+Post方案中的问题及解决

遇到的问题 请求发送后,服务端无响应 Django对于POST请求会检查请求来源,表单方式提交时: 在Form内添加 `{% csrf_token %}` 标签: request响应函数前,添加 `@csrf_exempt` ; Jquery POST 方式提交时,在服务端添加了 @csrf_exempt ,在Django1.5版本后,无法直接通过POST获取参数,通过`raw_data = request.body` 获取数据时,出现如下错误提示: Exception: You cannot

简单的Ajax应用实例

从网页前端输入提示范围内的字符,然后显示从后台返回的结果 <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <script type="text/javascript"> function showHint(str) { var xmlhttp; if (str.length==0) {