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多线程编程(四):使用Lock互斥锁
Apr 05 Python
Python将图片批量从png格式转换至WebP格式
Aug 22 Python
Python实现导出数据生成excel报表的方法示例
Jul 12 Python
Python使用numpy模块创建数组操作示例
Jun 20 Python
python实现字符串中字符分类及个数统计
Sep 28 Python
浅谈pyqt5中信号与槽的认识
Feb 17 Python
python opencv 简单阈值算法的实现
Aug 04 Python
pytorch实现CNN卷积神经网络
Feb 19 Python
Python IDLE或shell中切换路径的操作
Mar 09 Python
Python写捕鱼达人的游戏实现
Mar 31 Python
Django crontab定时任务模块操作方法解析
Sep 10 Python
Python的flask接收前台的ajax的post数据和get数据的方法
Apr 12 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编程中字符串处理的5个技巧小结
2007/11/13 PHP
PHP Class&amp;Object -- 解析PHP实现二叉树
2013/06/25 PHP
二进制交叉权限微型php类分享
2014/02/07 PHP
PHP中判断文件存在使用is_file还是file_exists?
2015/04/03 PHP
通过Email发送PHP错误的方法
2015/07/20 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
2018/10/14 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
JQuery获取样式中的background-color颜色值的问题
2013/08/20 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
2015/03/13 Javascript
原生JS和JQuery动态添加、删除表格行的方法
2015/05/28 Javascript
jquery实现表单输入时提示文字滑动向上效果
2015/08/10 Javascript
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
2016/06/14 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
2016/09/24 Javascript
Angular2+国际化方案(ngx-translate)的示例代码
2017/08/23 Javascript
元素全屏的设置与监听实例
2017/11/28 Javascript
详解mpvue小程序中怎么引入iconfont字体图标
2018/10/01 Javascript
node实现socket链接与GPRS进行通信的方法
2019/05/20 Javascript
jQuery实现的记住帐号密码功能完整示例
2019/08/03 jQuery
JQuery中DOM节点的操作与访问方法实例分析
2019/12/23 jQuery
python中argparse模块用法实例详解
2015/06/03 Python
Python编程实现控制cmd命令行显示颜色的方法示例
2017/08/14 Python
Python元组及文件核心对象类型详解
2018/02/11 Python
python3.7 sys模块的具体使用
2019/07/22 Python
Django rstful登陆认证并检查session是否过期代码实例
2019/08/13 Python
解决TensorFlow GPU版出现OOM错误的问题
2020/02/03 Python
python实现查找所有程序的安装信息
2020/02/18 Python
解决flask接口返回的内容中文乱码的问题
2020/04/03 Python
纯CSS3实现的8种Loading动画效果
2014/07/05 HTML / CSS
使用HTML5 IndexDB存储图像和文件的示例
2018/11/05 HTML / CSS
英国排名第一的宠物店:PetPlanet
2020/02/02 全球购物
初一地理教学反思
2014/01/16 职场文书
宿舍打麻将检讨书
2014/01/24 职场文书
机关干部四风问题自我剖析及整改措施
2014/10/26 职场文书
2016年优秀党务工作者先进事迹材料
2016/02/29 职场文书
Mysql调整优化之四种分区方式以及组合分区
2022/04/13 MySQL
解决 redis 无法远程连接
2022/05/15 Redis