django学习之ajax post传参的2种格式实例


Posted in Python onMay 14, 2021

一.ajax介绍

1、ajax的含义

Ajax全称“Async Javascript And XML”即:异步的javascript和XML。它是一种称谓,并不指代某项具体的技术,准确来说是一系列技术的集合.现在,所有的无刷新操作都被称为“Ajax”.

2、使用ajax的好处:

使用ajax避免了整页数据的刷新,也减少了请求等待的时间,提高了用户体验.

二.ajax传参的两种格式

假设有如下表单,需要将这些表单用ajax传参的方式传给后台,该怎么做呢…

django学习之ajax post传参的2种格式实例

我们知道ajax传参的格式为$.post(“地址”,参数,function(返回值){}),套用这个格式进行传参,有以下两种方法:

方法一:提交表单中的部分字段

我们可以获取用户名,密码等内容,将其拼接成一个字典(想传什么就将其拼接成字典格式,没有特殊限制,你甚至可以单独的只传一个用户名),将其作为参数传给后台

例:

{‘username':username,‘password':password,‘csrfmiddlewaretoken':csrf}

{‘username':username‘}

{‘password':password}

关于csrf是预防跨站攻击的内容,你可以移步djanjo之csrf防跨站攻击作下了解

接下来看看代码中是如何实现的,重点关注带有下方标记的代码

{# ?ajax #}

{# ?post提交 #}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>注册</title>
    {# 引用jquery #}
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
</head>
<body>
<form ation="" method="post">
    {# 防止跨站攻击 #}
    {% csrf_token %}
    用户名:<input type="text" name="username"><br>
    密码:<input type="text" name="password"><br>
<!--    {# 表单提交 #}-->
<!--    <input type="submit">-->

<!--    {# ajax提交 #}-->
    <input type="button" value="注册" id="button">
</form>
</body>
</html>
<script>
	{# ?ajax #}
    $("#button").click(function(){
        username = $("[name='username']").val();
        password = $("[name='password']").val();
        csrf = $("[type='hidden']").val();
        console.log(username,password,csrf);

        {# ?post提交 #}
        {# $.post("地址",{参数},function(返回值){}) #}
        $.post("/user/register/",{'username':username,'password':password,'csrfmiddlewaretoken':csrf},function(data){
            console.log(data)
        })

    });

</script>

方法二:提交表单中的所有字段

console.log($(“form”).serialize()

serialize是把表单中的字段序列化,弄成get的请求的字符串格式,将其作为参数传给后台

值得注意的是这里就不能像方法一里那样想传什么参数就传什么参数了,而是表单中所有的字段都会被纳为请求的字符串格式

接下来看看代码中是如何实现的,重点关注带有下方标记的代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>注册</title>
    {# 引用jquery #}
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
</head>
<body>
<form ation="" method="post">
    {# 防止跨站攻击 #}
    {% csrf_token %}
    用户名:<input type="text" name="username"><br>
    密码:<input type="text" name="password"><br>
<!--    {# 表单提交 #}-->
<!--    <input type="submit">-->

<!--    {# ajax提交 #}-->
    <input type="button" value="注册" id="button">
</form>
</body>
</html>
<script>
	{# ?ajax #}
    $("#button").click(function(){
        console.log($("form").serialize());

        {# ?post提交 #}
        {# $.post("地址",{参数},function(返回值){}) #}
         $.post("/user/register/",console.log($("form").serialize()),function(data){
            console.log(data)
        })

    });

</script>

总结

到此这篇关于django学习之ajax post传参的文章就介绍到这了,更多相关django之ajax post传参内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python通过PIL获取图片主要颜色并和颜色库进行对比的方法
Mar 19 Python
Python中matplotlib中文乱码解决办法
May 12 Python
使用python读取csv文件快速插入数据库的实例
Jun 21 Python
Python调用C++,通过Pybind11制作Python接口
Oct 16 Python
PyQt5 多窗口连接实例
Jun 19 Python
Python的bit_length函数来二进制的位数方法
Aug 27 Python
python多进程重复加载的解决方式
Dec 13 Python
python Qt5实现窗体跟踪鼠标移动
Dec 13 Python
python实现监听键盘
Apr 26 Python
Python基础之函数嵌套知识总结
May 23 Python
如何正确理解python装饰器
Jun 15 Python
python常见的占位符总结及用法
Jul 02 Python
Python djanjo之csrf防跨站攻击实验过程
python控制台打印log输出重复的解决方法
聊一聊python常用的编程模块
May 14 #Python
如何获取numpy array前N个最大值
May 14 #Python
使用pandas模块实现数据的标准化操作
pandas 实现将NaN转换为None
May 14 #Python
Pandas||过滤缺失数据||pd.dropna()函数的用法说明
You might like
discuz authcode 经典php加密解密函数解析
2020/07/12 PHP
解析ajax事件的调用顺序
2013/06/17 PHP
PDO::beginTransaction讲解
2019/01/27 PHP
PHP反射实际应用示例
2019/04/03 PHP
Nigma vs Alliance BO5 第四场2.14
2021/03/10 DOTA
js如何取消事件冒泡
2013/09/23 Javascript
Jquery ajax加载等待执行结束再继续执行下面代码操作
2015/11/24 Javascript
jQuery制作图片旋转效果
2017/02/02 Javascript
JS中实现函数return多个返回值的实例
2017/02/21 Javascript
vue.js实现条件渲染的实例代码
2017/06/22 Javascript
jQuery操作DOM_动力节点Java学院整理
2017/07/04 jQuery
微信小程序分享海报生成的实现方法
2018/12/10 Javascript
vue2之简易的pc端短信验证码的问题及处理方法
2019/06/03 Javascript
利用js-cookie实现前端设置缓存数据定时失效
2019/06/18 Javascript
python基础教程之序列详解
2014/08/29 Python
Python中捕捉详细异常信息的代码示例
2014/09/18 Python
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
使用Python生成随机密码的示例分享
2016/02/18 Python
Python文件夹与文件的相关操作(推荐)
2016/07/25 Python
Python字符串匹配之6种方法的使用详解
2019/04/08 Python
python爬虫增加访问量的方法
2019/08/22 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
Django-rest-framework中过滤器的定制实例
2020/04/01 Python
jenkins+python自动化测试持续集成教程
2020/05/12 Python
详解HTML5之pushstate、popstate操作history,无刷新改变当前url
2017/03/15 HTML / CSS
Feelunique澳大利亚:欧洲的化妆品零售电商
2019/12/18 全球购物
二手房购房意向书范本
2014/04/01 职场文书
爱心捐款倡议书范文
2014/05/12 职场文书
高中生自我评价范文2015
2015/03/03 职场文书
迎新年主持词
2015/07/06 职场文书
安全事故隐患排查治理制度
2015/08/05 职场文书
《金色的草地》教学反思
2016/02/17 职场文书
OpenCV-Python实现油画效果的实例
2021/06/08 Python
java如何实现socket连接方法封装
2021/09/25 Java/Android
Java 通过手写分布式雪花SnowFlake生成ID方法详解
2022/04/07 Java/Android
Win11 25163.1010更新补丁KB5016904推送,测试服务验证管道(附更新修复汇总)
2022/07/23 数码科技