网页前端提交数据给后台的几种方式

按照编码格式分类

contentType 码格式分类:

urlencoded() >>> username=jason&password=123
form-data >>>二进制方式传输文件

application/json >>> {“name”:“jason”,“password”:123}

form表单默认提交post请求数据编码方式 urlencoded
username=jason&password=123

ajax默认提交post请求数据编码方式 urlencoded
name=jason&password=123

说明:form表单和ajax默认提交post数据的编码都是urlencoded
用以下方式解析

data = requet.POST.get()

request.POST不会解析json编码格式的数据,二进制数据都在request.body里面,你可以自己手动去解析出来
前端提交
注释:data:JSON.stringfy({'name':'json','password':123},)指定了json格式,提交的数据就必须是json数据的,不能欺骗服务器。

$.ajax(
{
url:'',
type:'post',
contentType:'application/json',
data:JSON.stringfy({'name':'json','password':123},)
success:function(data){
console.log(data);
}
}
)

后端解析

def index(request):
data = request.body .decode('utf-8')
data = json.loads()
return render (request,'index.html')

form表单按照标签分类

a. input 标签

<form>
    <input name="name">
    <input type="submit" value="提交">
</form>

其中点击按钮后的url变为?name=222222222。
在这里插入图片描述
注意点:

  • 设置type=submit后,输入控件会变成一个按钮,显示的文字为其value值,默认值是Submit。
  • form[method]默认值为GET,所以提交后会使用GET方式进行页面跳转。
  • input[type]默认值为text,所以第一个input显示为文本框。
  • 注意:input的type属性还可以是button,这时它只是一个按钮,不会引发表单提交。

b. button标签

button的语义很明确,就是一个按钮不含数据,作用就是用户交互。但它也有type和value属性。 type的默认值是submit,所以点击一个button会引起表单提交:

<form>
  <input name='key'>
  <button>确定</button>
</form>

我们通过设置元素内容的方式来指定button的文字。这意味着button是一个容器控件, 其中可以包含任意的HTML标签,同时样式更容易定制。
但是,button会很乱。button可以设置name和value。提交表单时,value会被作为表单数据提交给服务器。 在IE中,甚至会把button开始与结束标签之间的内容作为name对应的值提交给服务器。button和input的相似还不止于此,button也可以设置type=reset,此时点击按钮会导致表单被重置(这还挺有用的)。

<form action="form_action.asp" method="get">
  First name: <input type="text" name="fname" />
  Last name: <input type="text" name="lname" />
  <button type="submit" value="Submit">Submit</button>
  <button type="reset" value="Reset">Reset</button>
</form>

c.阻止表单提交
阻止表单提交也是一个常见的话题,通常用于客户端的表单验证。通用的办法是设置onsubmit:

<form onsubmit="return false;">
  <input name='key'>
  <input value='ok' type='submit'>
</form>
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值