1. json
  json  是一种数据结构  跨平台跨语言
  1. python中json数据的转换
   1.数据类型
    字符串 数字 布尔值 列表 字典 None
    
   2. 序列化  python的数据类型  ——》  json字符串
    json.dumps(python的数据类型) 
    json.dump(python的数据类型,f)
   3. 反序列化  json字符串     ——》  python的数据类型
    json.loads(json字符串)
    json.load(json字符串,f)
    
  2. js中json数据的转换
   1.数据类型
    字符串  数字 布尔值 数组 对象  null
    
   2. 序列化  js的数据类型  ——》  json字符串
    JSON.stringify(js的数据类型)
    
   3. 反序列化  json字符串 ——》 JS的数据类型
    JSON.parse(json字符串)
    
  3. from django.http import JsonResponse    一般用来转换成字符串   字典就用这种方法
  JsonResponse({}) 
     JsonResponse([],safe=False)        传列表加这个参数
 2. ajax上传文件  及登录
视图代码:
# 上传文件
def upload(request):
    if request.is_ajax():
        f1 = request.FILES.get('f1')
        with open(f1.name, 'wb') as f:
            for i in f1.chunks():
                f.write(i)
        return HttpResponse('上传成功')
    return render(request, 'upload.html')
html代码:
<input type="file" id="my_file">
<button id="b1">上传</button>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="/static/ajax_setup.js"></script>
<script>
    $('#b1').click(
        function () {
            var form_obj = new FormData();
            form_obj.append('f1', $('#my_file')[0].files[0]);
            $.ajax({
                url: '/upload/',
                type: 'post',
                data: form_obj,
                processData: false,
                contentType: false,
                success: function (res) {
                    console.log(res)
                }
            })
        }
    )   
 
ajax登录代码
  # 登陆
from django.views import View
from django.http import JsonResponse
class Log(View):
    def get(self,request):
        return render(request,'log.html')
    def post(self,request):
        # 传一个字典
        ret={'status':0,'msg':''}
        user=request.POST.get('user')
        pwd=request.POST.get('pwd')
        # 找到第一个  不要用[0] 来取
        obj=models.User.objects.filter(name=user,pwd=pwd).first()
        if obj:
            # 给字典添加一个 登陆状态 及跳转网址
            ret['url']='/upload/'
            # 因为是字典新式 用JsonResponse
            return JsonResponse(ret)
        else:
            # 给字典添加  1为和设置用户密码错误
            ret['status']=1
            ret['msg'] = '用户名或密码错误'
            return JsonResponse(ret)
html代码:   
<p>
    用户名:<input type="text" id="user">
</p>
<p>
    密码:<input type="password" id="pwd">
</p>
<button id="b1">登录</button>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="/static/ajax_setup.js"></script>
<script>
$('#b1').click(function () {
    $.ajax({
        url:'/log/',
        type:'post',
        data:{
            user:$('#user').val(),
            pwd:$('#pwd').val()
        },
        success:function (res) {
            {#res 是调回来的对象 #}
            if (res.status ==0){
                {# res.url 相当于取字典里的值#}
                location.href = res.url
            }
            else {
                    alert(res.msg)
        }
        }
    })
})

ajax json用法 上传文件 登录的更多相关文章

  1. H5 FormData对象的使用——进行Ajax请求并上传文件

    XMLHttpRequest Level2 添加了一个新的接口——FormData .[ 主要用于发送表单数据,但也可以独立使用于传输键控数据.与普通的Ajax相比,它能异步上传二进制文件 ] 利用F ...

  2. jQuery Ajax使用FormData上传文件和其他数据,后端web.py获取

    参考博文: 通过jQuery Ajax使用FormData对象上传文件 方法一:使用<form>表单初始化FormData对象方式上传文件 前端(JQuery): <form enc ...

  3. HTML5+AJAX原生分块上传文件的关键参数设置

    processData:false 这是jquery.ajax的一个参数.默认值为true,表示会将非字符串对象自动变成k1=v1&k2=v2的形式,例如一个数组参数{d:[1,2]},到服务 ...

  4. Ajax 无刷新上传文件插件 uploadify 的使用

    在表单中无法直接使用 Ajax 上传文件,解决的思路可以是使用插件无刷新地上传文件,返回文件上传后的地址,然后把该地址作为 Ajax 的参数传递给服务器端进行数据库处理.可以使用 uploadify ...

  5. ajax:html5上传文件,上传之前可以实现本地预览

    本主题主要涉及两个新内容: 1.上传文件(主要使用了FormData) 2.本地预览(主要使用了FileReader) html5的FormData其实就是平时的Form表单,只是html5可以直接新 ...

  6. 使用FormData,进行Ajax请求并上传文件

    前段时间做了个手机端的图片上传,为了用户体验,用ajax交互,发现了FromData对象,这里有详细解释https://developer.mozilla.org/zh-CN/docs/Web/API ...

  7. Ajax通过FormData上传文件

    1.使用<form>表单初始化FormData对象方式上传文件 HTML代码 <form id="uploadForm" enctype="multip ...

  8. Springboot第三篇:与前端fetch通信(关于前端传输json数据上传文件等等前后端的处理)

    关于前端接口传递的方法,推荐按以下使用: 若要在服务器上创建资源,推荐使用POST方法 若要检索某个资源,推荐使用GET方法 若要更新资源,推荐使用PUT方法 若要删除某个资源,推荐使用DELETE方 ...

  9. ajax无刷新上传文件

    网页上传文件最简单的方式就是通过表单上传了,但是在提交表单的时候会导致网页刷新,但有的时候我们不想网页刷新,有什么办法呢,我们可以使用ajax上传文件来做到这一点.只有ajax还不行,还需要JavaS ...

随机推荐

  1. 【计算机视觉】ARM平台实现人脸检测YSQfastfd

    ARM平台实现于仕琪人脸检测库YSQfastfd 平台要求 ARM32 platform hardware board Ubuntu 16.04 with GTK3 library USB camer ...

  2. opencv-python教程学习系列7-opencv图像基本操作

    前言 opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍图像的基本操作,坚持学习,共同进步. 系列教程参照OpenCV-Python中文教程: 系统环境 ...

  3. 批处理设置IP地址 - imsoft.cnblogs

    批处理设置IP地址 不知朋友们是否有这样的经历,把本本带到单位上网时,由于单位需要配固定IP地址,而家里是自动获得IP地址的,所以每天都要对这个IP地址设置来设置去,那么有没有简单方便的办法呢?其实我 ...

  4. MVC的好处 演示

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  5. dfs 与 剪枝

    http://blog.csdn.net/u010700335/article/details/44095171

  6. TweenMax.allTo

    需要多个MC进行相同的缓动.比如下面这个游戏菜单.三个按钮的缓动是相同的,都缓动到同一个x坐标位置.然后同时有缓动出舞台. 如果有TweenLite实现的话,需要             if (is ...

  7. 日志挖掘(logminer)

    转. 如何使用logminer分析Oracle   联机日志         笔者在工作中经常遇到这样的情况:为了追踪数据的变化,需要知道某个表或者表中的某行数据是什么时候被修改的,以及修改前的内容. ...

  8. 优化Django ORM中的性能问题(含prefetch_related 和 select_related)

    Django是个好工具,使用的很广泛. 在应用比较小的时候,会觉得它很快,但是随着应用复杂和壮大,就显得没那么高效了.当你了解所用的Web框架一些内部机制之后,才能写成比较高效的代码. 怎么查问题 W ...

  9. Microsoft Dynamics CRM 2011 Plugin中PluginExecutionContext.InputParameters["Target"]中的Target是从哪来的?

    图 1 如图1,CRM编程是一个请求响应模型,任何操作都是通过一个Request发起,一个Response返回结果,这个模型简单实用.所有请求类都是继承OrganizationRequest,所有响应 ...

  10. 使用scrapy框架爬取自己的博文

    scrapy框架是个比较简单易用基于python的爬虫框架,http://scrapy-chs.readthedocs.org/zh_CN/latest/ 这个是不错的中文文档 几个比较重要的部分: ...