最近在写一个django的web项目,后端代码基本都已经写好了,主要是前端,以前学过一段前端,只是对一些基本的方法知道,但还有很多东西不熟练,问题是在遇到表单数据时候,如何对参数整体打包发送后端接口,查阅相关资料发现一些知识点和方法,分享给大家,虽然我发现技术类文章阅读量比标题党文章低的多,但是还是要坚持分享原创技术文章,能多一个粉丝学到知识,对我文章肯定,我也觉得比几千的阅读量感觉心里更有成就感

我们今天要的效果是点击按钮,可以显示输入框中键值对,显示在页面,以此来说明参数较多的情况下如何整体打包和进行循环遍历

比如以下是我简单写的前端代码,代码结构是form表单,嵌套多个input输入框,username、password、city、age、sex是键,张三、123456、上海、100、男分别是键对应的值

下图是对应到浏览器显示的样式,我们实际开发中需要做的就是传参数到后端,我们需要将该参数打包成以下数据结构,类似python中的列表和字典,在本例子中,打包方式有两种,分别对应以下两种数据结构

数据结构一:数组嵌套对象[{},{},{},{},{}]

[{name: "username", value: "张三"} , {name: "password", value: "123456"}, {name: "city", value: "上海"} , {name: "age", value: "100"}, {name: "sex", value: "男"} ]

数据结构二:直接构造成对象{k:v,k:v,k:v,k:v,k:v}

{username: "张三", password: "123456", city: "上海", age: "100", sex: "男"}

下面会分别将构造成这两种数据结构的区别和用法

方式一:

当然我不排除你自己一个个手敲,写进去作为参数传递,但是如果我有很多个输入框,你在一个个去手写,构造参数显然是很不现实的,那该怎么办?jqury给我们提供的有方法

serializeArray():将表单数据整体打包成一个数组(类似python中的列表)

接下来开始看前端代码:

1、直接选择form表单,serializeArray(),进行打包,console.log为在空台输出,类似python中print

2、在控制台console中查看我们打包的数据,发现是一个数组包含了5个对象,(当然python中说法是列表里面包含5个字典)

3、接下来,因为我们要在网页输出内容,所以正常的思路就是遍历数组,得到每一个对象,再通过对象的键获取对象的值,就能拿到数据,接下来我们就这么做,代码如下

jQuery给我们封装了$.each()方法可以进行遍历,传入的参数是遍历的数组params,function中的参数i是遍历时候的下标,obj是遍历的每一个对象,最后我们在输出的时候,通过obj.name获取键,obj.value获取值,即可拿到数据,正确输出

方式二:

大家可以思考下,我们需要做的一步是将[{name: "username", value: "张三"} , {name: "password", value: "123456"}, {name: "city", value: "上海"} , {name: "age", value: "100"}, {name: "sex", value: "男"} ] 转换成 {username: "张三", password: "123456", city: "上海", age: "100", sex: "男"},该怎么做?

我们也可以在python中想下用什么方法?可以用字典推导式一步完成

那么在js中怎么做呢?我们用map方法

map方法:接受的x为数组中遍历的对象,通过给对象设置键值对,获取我们想要的数据结构

然后在遍历的时候,这次我们的param就不是数组,而是对象{username: "张三", password: "123456", city: "上海", age: "100", sex: "男"},function的两个参数也不是下标和对象了,而是键和值,代码中可以直接写key和value

最后同样能成功输出

总结:

一般在向后端传输的时候,我们需要传json数据,那么我们就会用方式二的写法,将序列化得到的数组再用map转成对象

本人经验有限,不足之处欢迎指正

web项目答辩总结_web实战项目遇到问题总结探索相关推荐

  1. python视频网站项目_Python超羽量级灵活框架 Flask实战微电影视频网站 大小项目通吃 Flask实战项目...

    课程名称: Python超羽量级灵活框架 Flask实战微电影视频网站 大小项目通吃 Flask实战项目视频教程 课程简介: Flask作为Python编写的Web小型框架,可以使用Python快速开 ...

  2. go语言Web开发框架:项目开发介绍及实战项目介绍

    引言 本系列课程我们将学些Golang语言中的Web开发框架Iris的相关知识和用法.通过本系列视频课程,大家能够从零到一经历一个完整项目的开发,并在课程中了解实战项目开发的流程和项目设涉及的各个模块 ...

  3. python能做什么项目-这十个Python实战项目,让你瞬间读懂Python!

    前言 Python 是一种极具可读性和通用性的编程语言.Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣.Pytho ...

  4. web项目答辩总结_web经典答辩题

    11.手工书写一个servlet类,并书写servlet注册的web.xml文件 12.servlet url映射路径有哪些? /abc:精确映射 *.do:扩展映射 /abc/* :路径映射 13. ...

  5. python开发项目案例集锦 pdf_Python项目开发案例集锦 实战项目代码+配套文件

    Python项目开发案例集锦涵盖8个开发方向.23个项目,循序渐进地让读者在实践中学习,在实践中提升实际开发能力. 全书共8篇:控制台程序.小游戏.实用小工具.网络爬虫.数据分析.人工智能.Web开发 ...

  6. 实战项目002-LED音乐频谱时钟

    废话少说,先上图 观看视频:https://www.bilibili.com/video/BV1vh411y7ZA/ 1.项目简介 该项目为锻炼焊接和组装能力.  直接购入淘宝相应套件. 本人在深入学 ...

  7. 人工智能实战项目(python)+多领域实战练手项目

    人工智能实战项目 大家好,我是微学AI,本项目将围绕人工智能实战项目进行展开,紧密贴近生活,实战项目设计多个领域包括:金融.教育.医疗.地理.生物.人文.自然语言处理等:帮助各位读者结合机器学习与深度 ...

  8. 实战项目001-像素时钟-基于ESP8266

    废话少说,先上图 观看视频:https://www.bilibili.com/video/BV1ct4y1q7tK/ 以下为制作资料: 1.项目简介 该项目参考HACK实验室的矩阵时钟,和国外开源时钟 ...

  9. Web 前端,易学难精,没有拿手的实战项目,怎么办?

    今年受经济下行与疫情叠加的影响,毕业生有800多万,就业形势十分严峻,但即便如此,Web 前端人才在软件开发行业的就业市场中依旧供小于求,目前,全国总缺口每年大约为近百万人. 行业对前端需求量持续增加 ...

最新文章

  1. ant引入html页面,antd引入普通html使用,将ant Design本地化
  2. 卫星轨道推演计算相关知识点总结(含欧拉角、旋转矩阵、及各坐标系转化等)
  3. VMware vSphere/vCenter/ESX(i)介绍
  4. JSt中对象的prototype属性
  5. a7100换电池_动动手你也行 篇十四:冲动是魔鬼——单反电池换芯失败记
  6. Windows Phone 8本地化多语言支持
  7. 话里话外:ERP与PDM、MES的关系区别是什么
  8. rk3399性能_AIIA AI公布首轮评估结果:瑞芯微RK3399数据抢眼
  9. Git-根据tag创建分支
  10. OSL LLVM 3.3 Related Changes
  11. 数据结构与算法分析-用C语言实现栈(数组方式)
  12. 深度学习的1000+篇文章总结
  13. Neo4j清空数据库
  14. Vue + Spring Boot 项目实战
  15. 银行电话精准营销的探索性分析并基于XGboost进行潜在客户预测建模
  16. 一网打尽!所有PMP的计算公式都在这里啦,赶紧学起来,建议收藏
  17. 大数据社会的十三大具体应用场景(二)
  18. 基于百度AI实现的语音识别搜索文件
  19. Android开发介绍
  20. js制作的模拟超逼真下雨效果

热门文章

  1. python简说(十五)MD5加密
  2. keepalived+nginx安装
  3. find 按时间查找
  4. inline-block空隙怎么解决
  5. VMware上实现LVS负载均衡(NAT)
  6. NYOJ——街区最短路径问题
  7. php中OR与|| AND与的区别
  8. IHttpHandler 概述
  9. 从一个需求看问题的无限复杂化和简单化
  10. linux的mount(挂载)命令详解