浅析form标签中的GET和POST提交方式区别

 更新时间:2021年09月07日 16:01:50   作者:孤寒者  
在HTML中,form表单的作用是收集标签中的内容<form>...</form> 中间可以由访问者添加类似于文本,选择,或者一些控制模块等等.然后这些内容将会被送到服务端

form标签中的GET和POST

一个表单必须指定两样东西:

  • form的method参数用于设置表单的提交方式,默认使用POST.
  • action用于设置表单的提交url,如果不写或者保持空字符串,那么将使用当前的URL.

1.form表单使用post方式提交的例子

下面例子实现流程:

  • 当我们第一次访问此接口时,是GET方式(浏览器里访问一个URL就是一次GET方法,不用解释),观察视图函数可知其给用户渲染的是带有form表单的模板页面。
  • 当我们在输入框输入数据,并点击提交后,就会发送一次POST方式,这样根据视图函数,就会在控制台打印输入框输入的数据。

注意:

  • post的提交方式不会在url中显示参数;
  • 可以通过request.POST.get方式来获取提交的数据。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.form表单使用get方式提交的例子

下面例子实现流程: 

  • 当我们第一次访问此接口时,是GET方式(浏览器里访问一个URL就是一次GET方法,不用解释),观察视图函数可知其给用户渲染的是带有form表单的模板页面。
  • 当我们在输入框输入数据,并点击提交后,就会发送一次GET方式(因为咱再form表单设置的是POST提交方式),这样根据视图函数,就会在控制台打印输入框输入的数据。

因为我们的设置,所以点击模板中的提交按钮就是一次GET提交,在对应的终端就可以打印form表单提交的a和b的值。

注意:

  • get提交的参数会在url中显示;
  • 可以通过request.GET.get的方法来获取提交的参数。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.一键多值的getlist方法

request对象的属性GET、POST都是QueryDict类型的对象;
与python字典不同,QueryDict类型的对象用来处理同一个键带有多个值的情况。

  • 方法get():
    根据键获取值,只能获取键的一个值
    如果一个键同时拥有多个值,获取最后一值(因为覆盖了哦!)
  • 方法getlist():
    根据键获取值将键的值以列表返回
    可以获取一个键的多个值

比如:

后端如何通过获取多选框用户选中的选项——使用getlist方法

在这里插入图片描述

在这里插入图片描述

4.request中GET和POST对象的属性

第一个:GET属性!

  • QueryDict类型的对象
  • 包含get请求方式的所有参数
  • 与url请求地址中的参数对应,位于?后面
  • 参数的格式是键值对,如key1=value1
  • 多个参数之间,使用&连接,如key1=value1&key2=value2

第二个:POST属性!

  •  QueryDict类型的对象
  • 包含post请求方式的所有参数
  • 与form表单中的控件对应
  • 表单中控件要有name属性,则name属性的值为键,value属性的值为值,构成键值对提交
  • 对于checkbox控件,name属性一样为一组,当控件被选中后会被提交,存在一键多值的情况.

小拓展:构造一个GET请求——只要我们点击 ‘点击' 按钮,会发现作用和《form表单使用get方式》效果一模一样,我们也可以在后端打印a和b的值(同时也可以观察浏览器中的URL链接也可以看出来 哦!),说明数据提交成功!

在这里插入图片描述在这里插入图片描述

5.GET和POST请求方式总结

  • GET:GET如其名,是从服务器获取数据,不会更改服务器的状态和数据,在URL中携带参数发送给服务器。
  • POST则是将一定量的数据发送给服务器,一般会更改服务器的数据。
  • POST方法的参数不能在URL当中看到,他是通过body参数传递给服务器的,所以相对GET方法直接能在URL当中看到传递的参数,显得更加安全一些.当然,也不能简单的判定POST方法比GET方法更安全,要使网站保持安全,需要做更多的安全处理.

以上就是浅析form标签中的GET和POST提交方式区别的详细内容,更多关于form标签GET和POST提交方式的资料请关注脚本之家其它相关文章!

相关文章

  • python multiprocessing模块用法及原理介绍

    python multiprocessing模块用法及原理介绍

    这篇文章主要介绍了python multiprocessing模块用法及原理介绍,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • 用Python简单实现个贪吃蛇小游戏(保姆级教程)

    用Python简单实现个贪吃蛇小游戏(保姆级教程)

    本文基于Windows环境开发,适合Python新手,文中有非常详细的代码示例,对正在学习python的小伙伴们很有帮助,需要的朋友可以参考下
    2021-06-06
  • PyCharm出现Error:Python packaging tool 'setuptools' not found解决办法

    PyCharm出现Error:Python packaging tool 'setuptools&apo

    这篇文章主要给大家介绍了关于PyCharm出现Error:Python packaging tool 'setuptools' not found的解决办法,文中通过图文及代码介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • python中list循环语句用法实例

    python中list循环语句用法实例

    这篇文章主要介绍了python中list循环语句用法,以实例形式详细介绍了Python针对list的解析,包含各种常见的遍历操作及原理分析,需要的朋友可以参考下
    2014-11-11
  • pycharm通过ssh连接远程服务器教程

    pycharm通过ssh连接远程服务器教程

    今天小编就为大家分享一篇pycharm通过ssh连接远程服务器教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • python中的IO流使用解读

    python中的IO流使用解读

    这篇文章主要介绍了python中的IO流使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 如何使用python转移mysql数据库中的全部数据

    如何使用python转移mysql数据库中的全部数据

    这篇文章主要为大家详细介绍了如何使用python转移mysql数据库中的全部数据,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解下
    2024-11-11
  • Python文件相关操作和方法汇总大全

    Python文件相关操作和方法汇总大全

    这篇文章主要介绍了Python文件相关操作和方法汇总大全,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • Django分组聚合查询实例分享

    Django分组聚合查询实例分享

    在本篇文章里小编给大家分享的是关于Django分组聚合查询实例内容,需要的朋友们可以参考下。
    2020-04-04
  • python里面单双下划线的区别详解

    python里面单双下划线的区别详解

    本文主要介绍了python里面单双下划线的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04

最新评论