博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django与Ajax
阅读量:5256 次
发布时间:2019-06-14

本文共 2182 字,大约阅读时间需要 7 分钟。

一.Ajax

ajax(Asynchronous Javascript And XML)翻译成中午就是"异步JavaScritp和XML"。即是使用JavaScript语言与服务器进行异步交互,传输的数据为XML(现在更多使用json数据)。ajax就是一种前后端数据交互的方式特点:    1.异步交互:客户端发出一个请求后,无需等待服务器响应结束,就可以发出第二个请求    2.局部刷新

基本用法:

$.ajax({    url:'/index/',                  指定路径    type:'post',                    指定请求方式    data:{'name':'Yven','age':18},  往后台提交的数据    success:function (data) {       成功时回调该函数        console.log(data)    }})

二.上传文件

请求头ContentType

1.application/x-www-form-urlencoded

这是最常见的POST提交数据的方式,浏览器的原生<form>表单,如果不设置enctype属性,那么最终就会以application/x-www-form-urlencoded方式提交数据,请求类似下面这样:

POST http://www.example.com HTTP/1.1Content-Type: application/x-www-form-urlencoded;charset-utf-8user=yven&&age=18

2.multipart/form-data

这又是一个常见的POST数据提交的方式,我们使用表单上传文件时,必须让<form>表单的enctype等于multipart/form-data。如下:

POST http://www.example.com HTTP/1.1Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryrGKCBY7qhFd3TrwA------WebKitFormBoundaryrGKCBY7qhFd3TrwAContent-Disposition: form-data; name="user"yuan------WebKitFormBoundaryrGKCBY7qhFd3TrwAContent-Disposition: form-data; name="file"; filename="chrome.png"Content-Type: image/pngPNG ... content of chrome.png ...------WebKitFormBoundaryrGKCBY7qhFd3TrwA--

3.application/json

application/json这个Content-Type作为响应头大家肯定不陌生。这也是越来越流行的一种请求头,用来告诉服务端消息主体是序列化后的JSON字符串,由于JSON规范的流行,除了低版本IE之外的各大浏览器都原生支持JSON.stringify,服务端语言也都有处理JSON的函数,使用JSON不会有书名麻烦。JSON格式支持比键值对复杂的多的结构化数据,这一点也很有用,

基于Ajax上传文件

三.Ajax提交json格式数据

模板层

试图层

if request.method == 'GET':    return render(request,'json_login.html')data = request.bodyimport jsonres = json.loads(data.decode('utf-8'))name = res['name']pwd = res['pwd']dic = {'user':None,'msg':None}try:    user = models.User.objects.get(name=name)    if user.password == pwd:        dic['user'] = 1        dic['msg'] = '登录成功'    else:        dic['msg'] = '密码错误'    return JsonResponse(dic)except:    dic['msg'] = '用户名不存在'    return JsonResponse(dic)

四.Django内置的serializers

from django.core import serializers# serializers把对象序列化成json字符串def test(request):    book = Book.objects.all()    res = sserializers.serialize('json',book)    return HttpResponse(res)

转载于:https://www.cnblogs.com/louyefeng/p/9985004.html

你可能感兴趣的文章
【雷电】源代码分析(二)-- 进入游戏攻击
查看>>
Entityframework:“System.Data.Entity.Internal.AppConfig”的类型初始值设定项引发异常。...
查看>>
Linux中防火墙centos
查看>>
mysql新建用户,用户授权,删除用户,修改密码
查看>>
FancyCoverFlow
查看>>
JS博客
查看>>
如何设置映射网络驱动器的具体步骤和方法
查看>>
ASP.NET WebApi 基于OAuth2.0实现Token签名认证
查看>>
283. Move Zeroes把零放在最后面
查看>>
Visual Studio Code 打开.py代码报Linter pylint is not installed解决办法
查看>>
Python 数据类型
查看>>
S5PV210根文件系统的制作(一)
查看>>
centos下同时启动多个tomcat
查看>>
slab分配器
查看>>
数据清洗
查看>>
【读书笔记】C#高级编程 第三章 对象和类型
查看>>
针对sl的ICSharpCode.SharpZipLib,只保留zip,gzip的流压缩、解压缩功能
查看>>
【转】代码中特殊的注释技术——TODO、FIXME和XXX的用处
查看>>
【SVM】libsvm-python
查看>>
Jmeter接口压力测试,Java.net.BindException: Address already in use: connect
查看>>