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

按照编码格式分类

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 标签

其中点击按钮后的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会引起表单提交:

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

First name: Last name:

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

你可能感兴趣的:(django,前端)