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中的描述符(descriptor)
Jun 03 Python
Python 获取当前所在目录的方法详解
Aug 02 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
May 04 Python
Python DataFrame 设置输出不显示index(索引)值的方法
Jun 07 Python
Flask框架URL管理操作示例【基于@app.route】
Jul 23 Python
python lambda表达式(匿名函数)写法解析
Sep 16 Python
基于python解线性矩阵方程(numpy中的matrix类)
Oct 21 Python
详解Python中的format格式化函数的使用方法
Nov 20 Python
解析PyCharm Python运行权限问题
Jan 08 Python
浅谈python处理json和redis hash的坑
Jul 16 Python
python获取天气接口给指定微信好友发天气预报
Dec 28 Python
python和anaconda的区别
May 06 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
PHP实现的折半查询算法示例
2017/10/09 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
发布一个高效的JavaScript分析、压缩工具 JavaScript Analyser
2007/11/30 Javascript
DOMAssitant最新版 DOMAssistant 2.5发布
2007/12/25 Javascript
基于JQuery实现滚动到页面底端时自动加载更多信息
2014/01/31 Javascript
浅谈javascript中this在事件中的应用
2015/02/15 Javascript
javascript中的正则表达式使用详解
2015/08/30 Javascript
基于canvas实现的钟摆效果完整实例
2016/01/26 Javascript
js微信扫描二维码登录网站技术原理
2016/12/01 Javascript
使用重写url机制实现验证码换一张功能
2017/08/01 Javascript
AngularJS 表单验证手机号的实例(非必填)
2017/11/12 Javascript
利用Node.js检测端口是否被占用的方法
2017/12/07 Javascript
react 创建单例组件的方法
2018/04/26 Javascript
Node.js中的child_process模块详解
2018/06/08 Javascript
JS封装的模仿qq右下角消息弹窗功能示例
2018/08/22 Javascript
react 国际化的实现代码示例
2018/09/14 Javascript
layui实现数据表格点击搜索功能
2020/03/26 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
[57:55]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第二场 12.12
2020/12/16 DOTA
Python 代码性能优化技巧分享
2012/08/07 Python
使用Python在Windows下获取USB PID&amp;VID的方法
2019/07/02 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
Python imageio读取视频并进行编解码详解
2019/12/10 Python
python实现与redis交互操作详解
2020/04/21 Python
Python configparser模块操作代码实例
2020/06/08 Python
小学运动会表扬稿
2014/01/19 职场文书
yy婚礼司仪主持词
2014/03/14 职场文书
职工小家建设活动方案
2014/08/25 职场文书
党的群众路线对照检查材料(个人)
2014/09/24 职场文书
2015企业年终工作总结范文
2015/05/27 职场文书
2015中学教学工作总结
2015/07/22 职场文书
大学开学感言
2015/08/01 职场文书
《最后一头战象》教学反思
2016/02/16 职场文书
检讨书怎么写?
2019/06/21 职场文书
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
2022/08/05 Vue.js