day69

news2024/11/19 9:26:19

今日回顾

Django与Ajax

一、什么是Ajax

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

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

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

优点:Ajax使用Javascript技术向服务器发送请求,Ajax无须刷新整个页面

使用:使用了jq帮咱们封装的方法  ajax ,名字跟ajax相同 $.ajax
真正的ajax原生,需要使用js操作,jq的ajax方法是对原生js的封装,方便咱们使用
    -前后端混合项目中,我们通常使用jq的ajax实现 js和后端异步交互
        -jq操作dom
        -jq发ajax请求
    -前后端分离项目中,我们会使用另一个第三方库,实现 js和后端异步交互(axios)
        -只想发送ajax请求---》只用来发ajax请求的库 

二、基于jquery的Ajax实现

<button class="send_Ajax">send_Ajax</button>
<script>

       $(".send_Ajax").click(function(){

           $.ajax({
               url:"/handle_Ajax/",
               type:"POST",
               data:{username:"Yuan",password:123},
               success:function(data){
                   console.log(data)
               },
               
               error: function (jqXHR, textStatus, err) {
                        console.log(arguments);
                    },

               complete: function (jqXHR, textStatus) {
                        console.log(textStatus);
                },

               statusCode: {
                    '403': function (jqXHR, textStatus, err) {
                          console.log(arguments);
                     },

                    '400': function (jqXHR, textStatus, err) {
                        console.log(arguments);
                    }
                }

           })

       })

</script>

三、案例

通过Ajax,实现前端输入两个数字,服务器做加法,返回到前端页面

<h1>写一个计算小案例--ajax</h1>
<input type="text" name="one" id="one"> + <input type="text" name="two" id="two"> = <input type="text" name="three"
                                                                                           id="three">
<button id="id_btn">计算</button>

<script>
    $("#id_btn").click(function () {
        //alert('xxx')
        // 取出前两个输入框的值
        var one = $("#one").val()
        var two = $("#two").val()
        //向后端发送请求
        $.ajax({
            url: '/demo01/',
            method: 'post',
            data: {one: one, two: two},
            success: function (res) {
                console.log(typeof res)
                if (res.code == 100) {
                    $("#three").val(res.result)
                } else {
                    alert(res.msg)
                }
            }
        })
    })
def demo01(request):
    if request.method == 'GET':
        return render(request, 'demo01.html')
    else:
        one = int(request.POST.get('one'))
        two = int(request.POST.get('two'))
        return JsonResponse({'code': 100, 'msg': '计算成功','result:one + two })        

四、文件上传

<h1>文件上传</h1>
<input type="file" id="id_file">
<button id="id_submit">上传文件</button>

<script>
    $("#id_submit").click(function () {

            var formdata = new FormData()
        // $("#id_file")[0].files[0]
        // $("#id_file") 根据id拿到标签---》jq把标签放到一个 列表中  ,
        // 取 第 0个位置,是取出第一个符合条件【id为id_file】的标签,想拿文件--》标签对象.files--->对象---》从对象中取出 key 为 0 对应的文件对象

            formdata.append('myfile', $("#id_file")[0].files[0])
            $.ajax({
                url: '/demo01/',
                method: 'post',
            // 指定编码,上传文件
                processData: false,  //默认会预处理数据---》把 {one: one, two: two}---》转成  one=1&two=2
                contentType: false,  //默认是urlencoded---》不指定编码---》上传文件必须要用 form-data
                data: formdata,
                success: function (res) {
                    if (res.code == 100) {
                        alert(res.msg)
                }     else {
                        alert(res.msg)
                }
            }
        })
    })
</script>
def demo01(request):
    if request.method == 'GET':
        return render(request, 'demo01.html')
    else:
        one = int(request.POST.get('one'))
        two = int(request.POST.get('two'))
        myfile = request.FILES.get('myfile')
        with open(myfile.name, 'wb') as f:
            for line in myfile:
                f.write(line)

        print(request.body)

        return JsonResponse({'code': 100, 'msg': '上传成功', })

五、Ajax提交json数据格式

<script>
$("#ajax_test").click(function () {
    var dic={'name':'lqz','age':18}
    $.ajax({
        url:'',
        type:'post',
        contentType:'application/json',  //一定要指定格式 contentType: 'application/json;charset=utf-8',
        data:JSON.stringify(dic),    //转换成json字符串格式
        success:function (data) {
            console.log(data)
        }

    })

})
</script>

提交到服务器的数据都在 request.body 里,取出来自行处理

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1283060.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

羊大师教你如何有效应对冬季流感,保护自己与家人

羊大师教你如何有效应对冬季流感&#xff0c;保护自己与家人 随着冬季的临近&#xff0c;流感病毒将再次蔓延。如何预防冬季流感来袭&#xff0c;成为了许多人关注的话题。幸运的是&#xff0c;我们可以采取一系列的预防措施来保护自己和家人&#xff0c;避免被流感侵袭。下面…

技术or管理?浅谈软件测试人员的未来职业发展,值得借鉴

我们在工作了一段时间之后&#xff0c;势必会感觉到自己已经积累了一些工作经验了&#xff0c;会开始考虑下一阶段的职业生涯会如何发展。测试人员在职业生涯中的不确定因素还是不少的&#xff0c;由于其入门门槛不高&#xff0c;不用学习太多技术性知识即可入行&#xff0c;所…

聚焦数据库Serverless创新,就在2023亚马逊云科技re:Invent

11月28日&#xff0c;亚马逊云科技在其最新的re:Invent 2023大会上宣布了三项重要的serverless创新&#xff0c;这些创新将极大地简化客户在任何规模上分析和管理数据的能力。以下是这些发布的主要要点总结和分析。 Amazon Aurora Limitless Database的新功能&#xff1a; 功能…

MS85163实时时钟/日历可Pin to Pin兼容PCF8563

MS85163/MS85163M是一款CMOS实时时钟(RTC) 和日历电路&#xff0c;针对低功耗进行了优化&#xff0c;内置了可编程的时钟输出、中断输出和低电压检测器。可Pin to Pin兼容PCF8563。所有寄存器地址和数据都通过两线双向I 2C总线进行串行传输&#xff0c;最大总线传输速度为 400k…

软件测试:测试用例八大要素模板

一、通用测试用例八要素 1、用例编号&#xff1b; 2、测试项目&#xff1b; 3、测试标题&#xff1b; 4、重要级别&#xff1b; 5、预置条件&#xff1b; 6、测试输入&#xff1b; 7、操作步骤&#xff1b; 8、预期输出 二、具体分析通用测试用例八要素 1、用例编号 一般是数字…

让业务带着问题去分析,用大数据分析工具

随着企业数字化转型进程的加快&#xff0c;企业大数据分析的需求也水涨船高&#xff0c;不少企业都在尝试上线BI大数据分析工具&#xff0c;让各业务人员带着业务问题去分析数据&#xff0c;获取解决问题的数据信息。而各高校也在搭建大数据分析教学平台&#xff0c;与时俱进提…

微信小程序${wx.env.USER_DATA_PATH}在哪

var FileSystemManager wx.getFileSystemManager()FileSystemManager.writeFile({filePath: ${wx.env.USER_DATA_PATH}/hello.txt,data: data.Body,encoding: utf8,success(res) {console.log(res)},fail(res) {console.error(res)}})

人工智能的新篇章:深入了解大型语言模型(LLM)的应用与前景

项目设计集合&#xff08;人工智能方向&#xff09;&#xff1a;助力新人快速实战掌握技能、自主完成项目设计升级&#xff0c;提升自身的硬实力&#xff08;不仅限NLP、知识图谱、计算机视觉等领域&#xff09;&#xff1a;汇总有意义的项目设计集合&#xff0c;助力新人快速实…

【多线程】-- 11 死锁、Lock锁

多线程 7 死锁 多个线程各自占有一些共享资源&#xff0c;并且互相等待其他线程占有的资源才能运行&#xff0c;而导致两个或多个线程都在等待对方释放资源&#xff0c;都停止执行的情形。某一个同步块同时拥有”两个以上对象的锁“时&#xff0c;就可能会发生死锁的问题。 …

nn.AdaptiveAvgPool2d(output_size)输入和输出怎么回事?

前言 nn.AdaptiveAvgPool2d(output_size) 函数作用&#xff1a;自适应进行平均池化。不用管输入、stride、padding&#xff0c;函数参数只有输出大小&#xff0c;其他的这个函数帮你搞定。 问题就是&#xff0c;我想知道他是咋搞定的&#xff1f; 1 函数的使用 先把例子摆上…

Socket和Http的通讯原理,遇到攻击会受到哪些影响以及如何解决攻击问题。

德迅云安全-领先云安全服务与解决方案提供商 Socket和HTTP通信原理&#xff1a; Socket通信原理&#xff1a; Socket是一种应用程序编程接口&#xff08;API&#xff09;&#xff0c;用于在单个进程或多个进程之间进行通信。它提供了一种灵活的、异步的通信方式&#xff0c;使…

【蓝桥杯】翻硬币

翻硬币 思路&#xff1a; 其实有点贪心的意思&#xff0c;依次比较&#xff0c;不同就1&#xff0c;然后修改自己的字符串和下一个的字符串&#xff0c;再匹配。 #include<iostream> #include<string> using namespace std;string now,res;int main(void) {cin&g…

安美数字酒店宽带运营系统 SQL注入漏洞复现

0x01 产品简介 HiBOS酒店宽带运营系统隶属于安美世纪(北京)科技有限公司开发的一套酒店宽带管理系统。 0x02 漏洞概述 安美数字酒店宽带运营系统 online_status.php、language.php等接口处存在SQL注入漏洞,未经身份认证的攻击者可以通过此漏洞获取数据库权限,进一步利用可…

算法通关村第十三关-黄金挑战数论问题

计数质数 描述 : 给定整数 n &#xff0c;返回 所有小于非负整数 n 的质数的数量 。 题目 : LeetCode 204.计数质数 : 204. 计数质数 分析 : 解决这个题有一个有效的方法&#xff0c;叫埃氏筛 , 后来又产生了线性筛&#xff0c;奇数筛等改进的方法。 基本思想是如果 x是…

【ElementUI】一行代码解决图片预览

【ElementUI】一行代码解决图片预览 只需要在图片标签上加入:preview-src-list 只需要在图片标签上加入:preview-src-list 完整代码如下&#xff1a; <el-table-column label"封面" align"center" prop"cover" :sort-orders"[descend…

赴日程序员高年薪过上“躺平”生活?

日本的IT行业想要达到的高薪&#xff0c;也是需要很多资历和经验的&#xff0c;不过即使你是新卒&#xff0c;也能拿到相比国内来说让你满意的薪资。 刚入职的起薪是20-23万日元/月&#xff0c;情报信息业出身&#xff0c;技术掌握不错&#xff0c;起薪是25万-30万日元。之后经…

vue项目配置多个代理

在本地.env文件配置本地/测试/预发/正式 路径&#xff1a; 在vue.config.js 里面配置&#xff1a; module.exports defineConfig({transpileDependencies: false,lintOnSave: false,outputDir: process.env.VUE_APP_DIST,publicPath: /,css: {loaderOptions: {postcss: {// p…

生命在于折腾——将心脏献给计算机

还记得当初自己为什么选择计算机&#xff1f; 看到这个话题的时候&#xff0c;我害羞了&#xff0c;是的&#xff0c;你没有看错&#xff0c;我害羞了&#xff0c;这并不是说我有恋物癖&#xff0c;只是我对经过我手中的计算机&#xff0c;都有一种独特的情感。 背景 我是一…

蓝桥杯-03-蓝桥杯学习计划

蓝桥杯-03-蓝桥杯学习计划 参考资料 相关文献 报了蓝桥杯比赛&#xff0c;几乎零基础&#xff0c;如何准备&#xff0c;请大牛指导一下。谢谢&#xff1f; 蓝桥杯2022各组真题汇总(完整可评测) 基础学习 C语言网 ACM竞赛入门,蓝桥杯竞赛指南 廖雪峰的官方官网 算法题单 洛谷…