form表单提交

post 提交之 multipart/form-data; boundary= ...

隐身守侯 提交于 2019-12-02 02:01:32
https://www.jianshu.com/p/0023bb7afddb 模拟multipart/form-data请求 原以为requests请求十分强大, 但遇到了模拟multipart/form-data类型的post请求, 才发现requests库还是有一丢丢的不足。 不过也可能是我理解的不足, 还希望读者老爷不吝指教! 在此感谢! 1. 什么是multipart/form-data请求 enctype属性: enctype:规定了form表单在发送到服务器时候编码方式,它有如下的三个值。 ①application/x-www-form-urlencoded:默认的编码方式。但是在用文本的传输和MP3等大型文件的时候,使用这种编码就显得 效率低下。 ②multipart/form-data:指定传输数据为二进制类型,比如图片、mp3、文件。 ③text/plain:纯文体的传输。空格转换为 “+” 加号,但不对特殊字符编码。 2. multipart/form-data请求请求体的格式(以某网站模拟登录为例) multipart请求体的格式 值得注意的是:请求头的Content-Type属性与其他post请求的不同 3. 实现请求体的拼接 3.1 第一种:使用 requests库 # coding: utf-8 from collections import

form表单提交被拦截

こ雲淡風輕ζ 提交于 2019-12-01 23:26:14
最近做的一个项目,利用form表单(可以避免跨域问题)提交,在chrome可以正常进行跳转,但是在手机端,以及一些pc端浏览器却无法正常跳转。通过检查后台日志,没有正常跳转的都是因为后天直接没有收到该请求,此时就一个疑惑: WHY? 查找问题 由于在chrome下是可以进行的,潜意识地便认为自己的代码没有,有问题的是浏览器(或者经过特殊处理的,微微一笑)。结果还正在网上找到一个可以佐证自己的思路的问题 link ,此文说了一个问题,若是自动触发表单的 submit() 方法时,会被浏览器记录为是 广告 ,从而被拦截了(这浏览器都被整怕了呀) 因而在寻找如何解决 广告 这条道路上渐行渐远。但是这个问题却不得不解决,严重影响公司业务,更多地便关心到自己的钱袋啊。 在跟产品沟通过程中,说是参数问题。遵循着轻松时刻来解决试试的心态。写了一个demo进行尝试。一切ok,以为会出现的问题,居然丝毫没有浮出水面的迹象。 拿着demo和线上代码对比 demo $('form').submit() 线上 $('form').submit() location.reload() 在锁定代码差异化后,果断去掉 location.reload() ,之前的问题瞬间烟消云散,拨开乌云见晴空。内心真是...... 自作聪明啊,话说为何chrome却没有出现这个问题呢。有点不太理解,这代码应该是同步的,各行其事

form表单相关

[亡魂溺海] 提交于 2019-12-01 22:33:31
<input> 元素 <input> 元素是最重要的表单元素。 <input> 元素有很多形态,根据不同的 type 属性。 这是本章中使用的类型: 类型 描述 text 定义常规文本输入。 radio 定义单选按钮输入(选择多个选择之一) submit 定义提交按钮(提交表单) 文本输入 <input type="text"> 定义用于文本输入的单行输入字段: 实例 <form> First name:<br> <input type="text" name="firstname"> <br> Last name:<br> <input type="text" name="lastname"> </form> 单选按钮输入 <input type="radio"> 定义单选按钮。 单选按钮允许用户在有限数量的选项中选择其中之一: 实例 <form> <input type="radio" name="sex" value="male" checked>Male <br> <input type="radio" name="sex" value="female">Female </form> 提交按钮 <input type="submit"> 定义用于向表单处理程序(form-handler)提交表单的按钮。 表单处理程序通常是包含用来处理输入数据的脚本的服务器页面。

POST请求BODY格式区别

核能气质少年 提交于 2019-12-01 18:33:41
在PostMan中用Post方式,Body有form-data,x-www-form-urlencoded,raw,binary四种。 Request Header示例: POST /upload.do HTTP/1.1 User-Agent: SOHUWapRebot Accept-Language: zh-cn,zh;q=0.5 Accept-Charset: GBK,utf-8;q=0.7,*;q=0.7 Connection: keep-alive Content-Length: 60408 Content-Type:multipart/form-data; boundary=ZnGpDtePMx0KrHh_G0X99Yef9r8JZsRJSXC Host: www.sohu.com --ZnGpDtePMx0KrHh_G0X99Yef9r8JZsRJSXC Content-Disposition: form-data;name="desc" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [......][......][......][......]........................... --ZnGpDtePMx0KrHh

IT兄弟连 HTML5教程 HTML5表单 新增的表单属性1

故事扮演 提交于 2019-12-01 18:23:49
HTML5 Input表单为<form>和<input>标签添加了几个新属性,属性如表1。 1 autocomplete属性 autocomplete属性规定form或input域应该拥有自动完成功能,当用户在自动完成域中开始输入时,浏览器在该域中显示填写的选项。autocomplete适用于<form>标签,以及以下的<input>标签:text、search、url、email、password、date Picker、range以及color。autocomplete属性有可能在form元素中是开启的,而在input元素中是关闭的。用法如下: 上述代码展示了一个form表单,我们为form域打开添加自动完成功并关闭password密码域的自动完成功能。起初为表单填充我们想要的值,效果如图1所示: 图1 autocomplete属性 自动填充功能提升了用户体验,为用户节省时间。当用户完成了某网站大量的表单输入,因为某一项不正确后返回表单页面后若需要重新填写所有项会影响用户体验,这时候为表单的某些输入域设置自动填充功能就能为用户省去大量时间。图2是返回后的表单: 图2 autocomplete属性 因为我们为form开启了自动填充功能,所以表单中的文本域都被填充为提交前的数据,而密码框关闭了该功能,所以密码的内容滞空。 2 autofocus属性

微信小程序-发送模板消息

半腔热情 提交于 2019-12-01 13:15:32
1 添加一个小程序的消息模板,获取到模板id,存储到数据库中,方便以后修改调用 2. https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/template-message/templateMessage.send.html 小程序模板消息 官网文档,直接调用send方法就行 这里有个坑,就是 form_id, 这个是用户触发表单事件的表单id,需要存储到数据库中,给这个表单提交以后的数据,添加一个字段叫做form_id(7天过期), 这个formid 是和提交时的openid有关联的,只能是提交的那个人才能用,别人用不了 也就是说,想要给谁发送模板消息,就要存储谁的form_id。 例如 剑圣给守望者提交了一个 爱你呦 的表单(数据库里会存储这个表单的form_id),但是守望者回复这个表单,并且向给 剑圣发送一个提醒的模板消息,就需要从剑圣提交的表单中获取存储的form_id,然后拼接url,发送post请求才能成功 守望者提交表单时的 form_id,只能给守望者自己发送模板消息 3. 代码正文: 剑圣端: Form表单属性 bindsubmit="sendClick" 提交方法 report-submit="true" 必须有,用来获取form_id button formType=

Django之Form和ModelForm组件

▼魔方 西西 提交于 2019-12-01 12:54:32
一 Form介绍 在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来。 与此同时在好多场景下都需要对用户的输入做校验,比如校验用户是否输入,输入的长度和格式等正不正确。如果用户输入的内容有错误就需要在页面上相应的位置显示对应的错误信息.。 Django form组件就实现了上面所述的功能。 总结一下,其实form组件的主要功能如下: 生成页面可用的HTML标签 对用户提交的数据进行校验 保留上次输入内容   普通方式手写注册功能 views.py # 注册 def register(request): error_msg = "" if request.method == "POST": username = request.POST.get("name") pwd = request.POST.get("pwd") # 对注册信息做校验 if len(username) < 6: # 用户长度小于6位 error_msg = "用户名长度不能小于6位" else: # 将用户名和密码存到数据库 return HttpResponse("注册成功") return render(request, "register.html", {"error_msg": error_msg}) View Code login.html <

FormData对象提交表单和form提交表单

旧街凉风 提交于 2019-12-01 11:35:43
链接:https://www.cnblogs.com/chwlhmt/p/8439135.html (侵删) FormData 这是HTML5 中新增的API 优点:FormData不仅能读取表单数据,也能自行追加数据 html: <form name="form1" id="form1"> <p>name:<input type="text" name="name" /></p> <p>gender:<input type="radio" name="gender" value="1" />male <input type="radio" name="gender" value="2" />female</p> <p>stu-number:<input type="text" name="number" /></p> <p>photo:<input type="file" name="photo" id="photo"></p> <p><input type="button" name="b1" value="submit" onclick="fsubmit()" /></p> </form> js: function fsubmit() { var form=document.getElementById("form1"); var fd =new FormData(form)

form表单

南楼画角 提交于 2019-12-01 10:31:10
<form action=""> <div id="demo"> 用户名(文本): <input type="text" name="user"><br><br> 密码(文本): <input type="password" name="key"><br><br> 性别(单选): <input type="radio" name="sale" value="1">男 <input type="radio" name="sale" value="0">女<br><br> 技能(多选): <input type="checkbox" name="skill" value="1"> Jave开发 <input type="checkbox" name="skill" value="2"> Vue开发 <input type="checkbox" name="skill" value="3"> PHP开发<br><br> 城市:(下拉框) <select name="city"> <option value="sh">上海</option> <option value="bj">北京</option> <option value="xa">西安</option> <option value="sz">深圳</option> </select><br><br> 说明:(多行文本)

Bootstrap基本CSS样式

*爱你&永不变心* 提交于 2019-12-01 10:19:37
一、简介、使用 1、简介   Bootstrap 来源于 Twitter,是一款基于 Html、Css、JavaScript 的前端UI框架。可以方便、快速的开发web界面。   教程:https://www.runoob.com/bootstrap/bootstrap-tutorial.html 2、使用 (1)直接使用CDN   BootCDN网址:https://www.bootcdn.cn/ <!-- 新 Bootstrap 核心 CSS 文件 --> <link href="https://cdn.bootcss.com/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"> <!-- jQuery文件。务必在bootstrap.min.js 之前引入,bootstrap.js 基于 jQuery 实现 --> <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script> <!-- 最新的 Bootstrap 核心 JavaScript 文件 --> <script src="https://cdn.bootcss.com/twitter-bootstrap/3.3.7/js/bootstrap.min.js">