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输出当前目录下index.html文件路径的方法
Apr 28 Python
python实现比较文件内容异同
Jun 22 Python
python实现本地图片转存并重命名的示例代码
Oct 27 Python
Python配置虚拟环境图文步骤
May 20 Python
深入了解Python iter() 方法的用法
Jul 11 Python
深入浅析Python 中的sklearn模型选择
Oct 12 Python
Python语法垃圾回收机制原理解析
Mar 25 Python
python递归函数用法详解
Oct 26 Python
用pip给python安装matplotlib库的详细教程
Feb 24 Python
Django如何与Ajax交互
Apr 29 Python
python使用pycharm安装pyqt5以及相关配置
Apr 22 Python
详解Python中的for循环
Apr 30 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
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
2008/11/18 PHP
又一个PHP实现的冒泡排序算法分享
2014/08/21 PHP
php中文繁体和简体相互转换的方法
2015/03/21 PHP
javascript之更有效率的字符串替换
2008/08/02 Javascript
Javascript 文件夹选择框的两种解决方案
2009/07/01 Javascript
js constructor的实际作用分析
2011/11/15 Javascript
JavaScript高级程序设计(第3版)学习笔记9 js函数(下)
2012/10/11 Javascript
javascript制作坦克大战全纪录(1)
2014/11/27 Javascript
freemarker判断对象是否为空的方法
2015/08/13 Javascript
浅谈javascript运算符——条件,逗号,赋值,()和void运算符
2016/07/15 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
2016/09/04 Javascript
Javascript中字符串replace方法的第二个参数探究
2016/12/05 Javascript
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
2017/07/22 jQuery
vue 打包后的文件部署到express服务器上的方法
2017/08/09 Javascript
页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
2017/08/29 Javascript
Node.js使用MySQL连接池的方法实例
2018/02/11 Javascript
webstorm中vue语法的支持详解
2018/05/09 Javascript
巧妙运用v-model实现父子组件传值的方法示例
2019/04/07 Javascript
vue插件--仿微信小程序showModel实现模态提示窗功能
2020/08/19 Javascript
Python脚本在Appium库上对移动应用实现自动化测试
2015/04/17 Python
python正则表达式之作业计算器
2016/03/18 Python
Python实现完整的事务操作示例
2017/06/20 Python
实例讲解Python3中abs()函数
2019/02/19 Python
浅谈python 中类属性共享的问题
2019/07/02 Python
python绘制直方图和密度图的实例
2019/07/08 Python
Pandas数据离散化原理及实例解析
2019/11/16 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
python的数学算法函数及公式用法
2020/11/18 Python
有影响力的人、名人和艺术家的官方商品:Represent
2019/11/26 全球购物
机修工岗位职责
2013/11/24 职场文书
库房保管员岗位职责
2014/04/07 职场文书
感恩老师演讲稿600字
2014/08/28 职场文书
2014年化工厂工作总结
2014/11/25 职场文书
幼儿园教师考核评语
2014/12/31 职场文书
2015年社区卫生工作总结
2015/04/21 职场文书
python内置模块之上下文管理contextlib
2022/06/14 Python