Django表单提交后实现获取相同name的不同value值


Posted in Python onMay 14, 2020

i前端:nput_test.html

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title>Search</title>
  <script>
 
  </script>
</head>
<body>
  <div><p>{{ result }}</p></div>
  <form action="" method="post">{% csrf_token %}
    <input type="text" name="key">
    <input type="text" name="key">
    <input type="submit" value="Search" >
  </form>
</body>
</html>

两个<input >标签name都是'key'

后台:Django views.py

def setting(request):
  if request.method == 'POST':
    result_list = request.POST.getlist('key', '')
    result = str(result_list)
    return render_to_response('input_test.html', locals(), context_instance=RequestContext(request))
  else:
    return render_to_response('input_test.html', locals(), context_instance=RequestContext(request))

运行后,在浏览器表单中输入:

Django表单提交后实现获取相同name的不同value值

打开chrome ,提交表单,看FormData,其实浏览器已经向后台提交了两个name 为'key '的值。

Django表单提交后实现获取相同name的不同value值

后台也成功接收到一个列表 ['1', '2']。

主要是这个API request.POST.getlist(),可以接收到所有共享同一个name的value,

QueryDict.getlist(key, default)¶

Returns the data with the requested key, as a Python list. Returns an empty list if the key doesn't exist and no default value was provided.

It's guaranteed to return a list of some sort unless the default value was no list.

参考:http://stackoverflow.com/questions/14348321/getting-distinct-values-from-inputs-that-share-the-same-name

补充知识:django中form从后端查询回显到前端以及表单的提交到服务器操作

Django表单提交后实现获取相同name的不同value值

这个表格是我以下代码出现的效果,以下代码也可以实现图中修改保存删除操作。

1:首先你得创建一张表,在这里建表语句我就不再写了,再也简单不过了。(别忘了加点数据哦!)

2:将表的数据通过view.py的函数返回到前端。在这里stu是表名,将所有的返回结果all通过一个data字典传到前端的all里面去

def showstu(request):
  all=stu.objects.all()
  data={
    "all":all
  }

return render(request,"searchstu.html",context=data)

3:有数据我们就可以拿到前端来展示了。

4 :新建一个searchstu.html文件,用来展示用的。

这个是最简单的表用来提示用的

<table border="1" cellpadding="0" >
      <tr >

      <td>姓名</td>
      <td>年龄</td>
      <td>性别</td>
      <td>班级</td>
      <td colspan="3">操作</td>
      </tr>
</table>

这个表是实现我们的功能的表

{% for student in all %}

<form action="{% url 'homework:updatestu' %}" method="get" >
<table border="1" cellpadding="0">
<tr><td>
 <input type="text" name="s_id" value={{student.id}} style="display:none">
</td><td>
  <input type="text" name="s_name" value={{student.stu_name}} >
</td><td>
  <input type="text" name="s_age"value={{ student.stu_age}}>
</td><td>
  <input type="text" name="s_sex"value={{ student.stu_sex}}>
</td><td>
  <input type="text" name="s_cla" value={{ student.stu_class}}>
</td><td>
    <input type="button" id="a" value="修改" οnclick="update(this)">

#在这里用了两种方法提交到服务器,一种是submit提交,还有一种是超链接提交。
</td><td><input type="submit" value="保存" οnclick="save(this)">
</td><td><a href="/homework/delstu/{{ student.id }}" rel="external nofollow" >
   <input type="button" value="删除"></a>
</td></tr>
    </table>
    </form>

{% endfor %}

好了查询功能已经做好了我们可以通过url访问了

url(r"^showstu/", views.showstu,name="showstu"),

现在起要操作剩下的功能了,在这里的一个比较笨的办法,要想实现点击对应的按钮删除或者修改哪一个,就要把每行都设置成一个form提交表单。

因此我把form放在for循环内部,这样循环一条就会多一个form表单。

5:实现提交后后端的处理函数,通过get获取。

更新操作

def updatestu(request):
  id = request.GET.get("s_id")
  name=request.GET.get("s_name")
  sex=request.GET.get("s_sex")
  age=request.GET.get("s_age")
  cla=request.GET.get("s_cla")

#获取数据库中这个id将和这个id有关的数据设置成你get到前面的值,别忘记保存!修改完后直接刷新这个页面也就是重定向到这个页面

  stu1=stu.objects.filter(pk=id).first()
  stu1.stu_age=age
  stu1.stu_class=cla
  stu1.stu_sex=sex
  stu1.stu_name=name
  stu1.save()
  return HttpResponseRedirect("/homework/showstu")

删除操作

def delstu(request,id):
  stu1=stu.objects.filter(pk=id).first()
  stu1.delete()
  return HttpResponseRedirect("/homework/showstu")

以上这篇Django表单提交后实现获取相同name的不同value值就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现监控windows服务并自动启动服务示例
Apr 17 Python
Python实现简单截取中文字符串的方法
Jun 15 Python
Python 遍历子文件和所有子文件夹的代码实例
Dec 21 Python
梯度下降法介绍及利用Python实现的方法示例
Jul 12 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
Nov 23 Python
详解Django-auth-ldap 配置方法
Dec 10 Python
python DataFrame 取差集实例
Jan 30 Python
python调用自定义函数的实例操作
Jun 26 Python
Python3运算符常见用法分析
Feb 14 Python
利用jupyter网页版本进行python函数查询方式
Apr 14 Python
pytorch掉坑记录:model.eval的作用说明
Jun 23 Python
Matplotlib绘制条形图的方法你知道吗
Mar 21 Python
django模板获取list中指定索引的值方式
May 14 #Python
Django admin管理工具TabularInline类用法详解
May 14 #Python
django创建超级用户时指定添加其它字段方式
May 14 #Python
简单了解python列表和元组的区别
May 14 #Python
Django 解决阿里云部署同步数据库报错的问题
May 14 #Python
Python参数传递实现过程及原理详解
May 14 #Python
Django模板标签{% for %}循环,获取制定条数据实例
May 14 #Python
You might like
php tp验证表单与自动填充函数代码
2012/02/22 PHP
PHP写的获取各搜索蜘蛛爬行记录代码
2012/08/21 PHP
基于PHP CURL用法的深入分析
2013/06/09 PHP
深入解析PHP中的(伪)多线程与多进程
2013/07/01 PHP
浅谈PHP中output_buffering
2015/07/13 PHP
php二维码生成以及下载实现
2017/09/28 PHP
Prototype Class对象学习
2009/07/19 Javascript
海量经典的jQuery插件集合
2010/01/12 Javascript
JS延迟加载(setTimeout) JS最后加载
2010/07/15 Javascript
jQuery中调用WebService方法小结
2011/03/28 Javascript
jquery中map函数与each函数的区别实例介绍
2014/06/23 Javascript
jquery中使用循环下拉菜单示例代码
2014/09/24 Javascript
使用正则表达式的格式化与高亮显示json字符串
2014/12/03 Javascript
Bootstrap字体图标无法正常显示的解决方法
2016/10/08 Javascript
简单易懂的天气插件(代码分享)
2017/02/04 Javascript
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
Angular项目从新建、打包到nginx部署全过程记录
2017/12/09 Javascript
webpack+vue2构建vue项目骨架的方法
2018/01/09 Javascript
vue.js 中使用(...)运算符报错的解决方法
2018/08/09 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
2019/05/02 Javascript
Js跳出两级循环方法代码实例
2020/09/22 Javascript
php使用递归与迭代实现快速排序示例
2014/01/23 Python
带你认识Django
2019/01/15 Python
pyqt5与matplotlib的完美结合实例
2019/06/21 Python
Python基于wordcloud及jieba实现中国地图词云图
2020/06/09 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
2020/08/07 Python
python获取命令行参数实例方法讲解
2020/11/02 Python
StubHub意大利:购买和出售全球演唱会和体育赛事门票
2017/11/21 全球购物
申请任职学生会干部自荐书范文
2014/02/13 职场文书
物控部经理职务说明书
2014/02/25 职场文书
专题民主生活会对照检查材料思想汇报
2014/09/29 职场文书
军人离婚协议书样本
2014/10/21 职场文书
大学感恩节活动总结
2015/05/05 职场文书
伊索寓言读书笔记
2015/06/30 职场文书
高二数学教学反思
2016/02/18 职场文书
Python入门之使用pandas分析excel数据
2021/05/12 Python