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

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

1. 向服务器发送请求的途径

1.浏览器地址,默认get请求

2.form表单:

  get请求

  post请求

3.a标签,默认get请求

4.Ajax请求

  特点:

  1.异步请求

  2.局部刷新

2. Ajex简介

AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,现在更多使用json数据)。

  • 同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求;

  • 异步交互:客户端发出一个请求后,无需等待服务器响应结束,就可以发出第二个请求。

AJAX除了异步的特点外,还有一个就是:浏览器页面局部刷新;(这一特点给用户的感受是在不知不觉中完成请求和响应过程)

优点:

  • AJAX使用Javascript技术向服务器发送异步请求

  • AJAX无须刷新整个页面

Ajax的简单实现、计算求值、登陆验证

index.html

    
index

This is index!


+ =

用户名
密码

 

views.py

from django.shortcuts import render, HttpResponse# Create your views here.from app01.models import Userimport jsondef index(request):    return render(request, 'index.html')def test_ajax(request):    print(request.GET)    return HttpResponse('hello edward')def cal(request):    n1 = int(request.POST.get('n1'))    n2 = int(request.POST.get('n2'))    ret = n1 + n2    return HttpResponse(ret)def login(request):    username = request.POST.get('username')    pwd = request.POST.get('pwd')    user = User.objects.filter(username=username, pwd=pwd).first()    res = {
'user': None, 'msg': None} if user: res['user'] = user.username else: res['msg'] = 'username or password wrong!' return HttpResponse(json.dumps(res))

 

基于form表单的文件上传

html

    
file put
用户名
头像

views.py

def file_put(request):    if request.method == 'POST':        print(request.POST)        print(request.FILES)  # 文件对象        file_obj = request.FILES.get('avatar')        with open(file_obj.name, 'wb') as f:            for line in file_obj:                f.write(line)        return HttpResponse('OK')    return render(request, 'file_put.html')

请求头contentType:

简单的form

用户名
密码

基于form表单的文件上传

用户名
头像

基于Ajax文件上传

用户名

Ajax传递json数据

    
file put

基于Ajax文件上传

用户名

views.py

def file_put(request):    if request.method == 'POST':        print('body', request.body)  # 请求报文中的请求体  body b'{"a":1,"b":2}'        print('post', request.POST)  # if contentType==urlencoded,request.POST才有数据。如果是urlencoded,那就把数据转换成字典,方便取值 post。此次传送的是json数据,所以没有值。 
return HttpResponse('OK') return render(request, 'file_put.html')

基于Ajax的文件上传

html

    
file put

基于Ajax文件上传

用户名
头像

views.py

def file_put(request):    if request.method == 'POST':        print('post', request.POST)        print('file',request.FILES)        file_obj = request.FILES.get('avatar')        with open(file_obj.name, 'wb') as f:            for line in file_obj:                f.write(line)        return HttpResponse('OK')    return render(request, 'file_put.html')

 

转载于:https://www.cnblogs.com/hexiaorui123/p/10584418.html

你可能感兴趣的文章
移动设备和SharePoint 2013 - 第3部分:推送通知
查看>>
SOPC Builder中SystemID
查看>>
MySQL数据库备份工具mysqldump的使用(转)
查看>>
青海行--(7月19日)麦积山石窟
查看>>
NTP服务器配置
查看>>
【转】OO无双的blocking/non-blocking执行时刻
查看>>
深入理解java集合框架(jdk1.6源码)
查看>>
php截取后台登陆密码的代码
查看>>
选假球的故事
查看>>
ul li剧中对齐
查看>>
关于 linux 的 limit 的设置
查看>>
模块搜索路径
查看>>
如何成为一名优秀的程序员?
查看>>
HDU(4528),BFS,2013腾讯编程马拉松初赛第五场(3月25日)
查看>>
C++期中考试
查看>>
Working with Characters and Strings(Chapter 2 of Windows Via C/C++)
查看>>
vim中文帮助教程
查看>>
Android 创建与解析XML(四)—— Pull方式
查看>>
CodeForces 411B 手速题
查看>>
同比和环比
查看>>