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抓取网页时字符集转换问题处理方案分享
Jun 19 Python
在Django中编写模版节点及注册标签的方法
Jul 20 Python
梯度下降法介绍及利用Python实现的方法示例
Jul 12 Python
使用Python制作微信跳一跳辅助
Jan 31 Python
python实现抖音视频批量下载
Jun 20 Python
python2爬取百度贴吧指定关键字和图片代码实例
Aug 14 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
Jan 25 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
Feb 10 Python
Python 实现黑客帝国中的字符雨的示例代码
Feb 20 Python
浅谈Pytorch torch.optim优化器个性化的使用
Feb 20 Python
python实现信号时域统计特征提取代码
Feb 26 Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
Feb 27 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实现refresh刷新页面批量导入数据的方法
2014/12/23 PHP
PHP对文件夹递归执行chmod命令的方法
2015/06/19 PHP
thinkPHP5.0框架环境变量配置方法
2017/03/17 PHP
超级兔子让浮动层消失的前因后果
2007/03/09 Javascript
jquery 的 $(&quot;#id&quot;).html() 无内容的解决方法
2010/06/07 Javascript
裁剪字符串trim()自定义改进版
2013/04/10 Javascript
JS正则表达式获取分组内容的方法详解
2013/11/15 Javascript
js获取光标位置和设置文本框光标位置示例代码
2014/01/09 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
2015/08/06 Javascript
Jquery插件easyUi实现表单验证示例
2015/12/15 Javascript
DWR中各种java方法的调用
2016/05/04 Javascript
JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法
2016/08/03 Javascript
jQuery扩展_动力节点Java学院整理
2017/07/05 jQuery
jQuery dateRangePicker插件使用方法详解
2017/07/28 jQuery
webpack 处理CSS资源的实现
2019/09/27 Javascript
微信小程序批量监听输入框对按钮样式进行控制的实现代码
2019/10/12 Javascript
javascript实现时间日期的格式化的方法汇总
2020/08/06 Javascript
Python调用命令行进度条的方法
2015/05/05 Python
python使用htmllib分析网页内容的方法
2015/05/08 Python
Python常用小技巧总结
2015/06/01 Python
理解Python垃圾回收机制
2016/02/12 Python
教你用Python脚本快速为iOS10生成图标和截屏
2016/09/22 Python
利用Python命令行传递实例化对象的方法
2016/11/02 Python
利用python实现命令行有道词典的方法示例
2017/01/31 Python
解决TensorFlow调用Keras库函数存在的问题
2020/07/06 Python
Python虚拟环境virtualenv创建及使用过程图解
2020/12/08 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
2020/12/14 Python
CSS3制作酷炫的条纹背景
2017/11/09 HTML / CSS
英国休闲奢华的缩影:Crew Clothing
2019/05/05 全球购物
大学三年的自我评价
2013/12/25 职场文书
创先争优活动党员公开承诺书
2014/08/29 职场文书
办理房产过户的委托书
2014/09/14 职场文书
2014年城管个人工作总结
2014/12/08 职场文书
党员干部公开承诺书范文
2015/04/27 职场文书
呼兰河传读书笔记
2015/06/30 职场文书
培训后的感想
2015/08/07 职场文书