cdzjf 发表于 2021-4-24 20:37:37

requests请求头中的data问题

data中的字符串本来就是键值对,遇到过data里面还有大括号的,这种有用json.dumps(data)的方式,但有的就不行,不知道到底data这种字段应该怎么来发起请求

比如最近遇到这样的data

{code: 15}
如果用data={'code': '15'}的方式就出错
如果用data='code=15'的方法就正确

这到底是问题出在哪里

redforce 发表于 2021-4-24 20:51:21

看你请求头的content-type类型
application/x-www-form-urlencoded这种类型支持data的类型是字符串(需要headers参数)和字典 requests.post(data=)
application/json 这种类型支持json格式
requests.post(url=url,data=data,headers=header)/requests.post(url=url,data=data)
requests.post(url=url,json=data)

kogawananari 发表于 2021-4-24 23:13:29

常见3种请求
application/x-www-form-urlencoded,GET请求:
    requests.get(url, params=单层字典)
application/x-www-form-urlencoded,POST请求:
    requests.post(url, data=单层字典)
application/json,GET/POST/PUT等请求:
    requests.post(url, data=json.dumps(可嵌套字典和列表的字典))
    requests.post(url, json=可嵌套字典和列表的字典)
multipart/form-data请求这个太复杂了略去

params参数和其他参数并不是互斥的data和json只能选一个

wp231957 发表于 2021-4-25 08:10:04

kogawananari 发表于 2021-4-24 23:13
常见3种请求
application/x-www-form-urlencoded,GET请求:
    requests.get(url, params=单层字典)
...

搭车问一下,哪里有关于请求头和响应头数据类型的详细介绍,我现在虽然写了好几百行的前后台代码,但是对于这个问题还是迷迷糊糊,有时前后台格式不匹配,导致数据无法正常传输

kogawananari 发表于 2021-4-25 10:33:31

wp231957 发表于 2021-4-25 08:10
搭车问一下,哪里有关于请求头和响应头数据类型的详细介绍,我现在虽然写了好几百行的前后台代码,但是对 ...

只讲前端吧后端我用django试了都能取到

form标签的onsubmit事件来请求必然是application/x-www-form-urlencoded类型

ajax直接请求不配置 必然是application/json类型

multipart/form-data得用ajax传输new formData对象 修改配置:
jQuery
$.ajax({
    type: "POST",
    data: formData,
    ...
    processData: false,
    contentType: false,
axios
axios.post(url,formData,{
          headers:{'Content-Type':'multipart/form-data'}
      }).then

wp231957 发表于 2021-4-30 07:11:27

kogawananari 发表于 2021-4-25 10:33
只讲前端吧后端我用django试了都能取到

form标签的onsubmit事件来请求必然是application/x-www- ...

再问一下,那个多个用户同时修改一个表的不同记录,会引起类似死锁的现象吗,服务器会当掉吗

kogawananari 发表于 2021-4-30 12:56:03

wp231957 发表于 2021-4-30 07:11
再问一下,那个多个用户同时修改一个表的不同记录,会引起类似死锁的现象吗,服务器会当掉吗

看锁的等级分表级锁 行级锁

wp231957 发表于 2021-4-30 13:02:05

kogawananari 发表于 2021-4-30 12:56
看锁的等级分表级锁 行级锁

就是我做了一个查询模块,思想就是设计一个表,每次查询都清空该表,然后填充数据,最后渲染到网页,现在的问题是,每个用户都有该查询权限,那么会造成抢表的事,
我如果在代码中加入以下两条语句是否会成功呢 ,会在客户端造成一些莫名其妙的现象还是服务端当机
lock table cgf.yuebao write;
此处放置 我原来的一大堆sql语句(查询模块主要操作cgf.yuebao 表)
unlock TABLEs;

kogawananari 发表于 2021-4-30 14:09:14

wp231957 发表于 2021-4-30 13:02
就是我做了一个查询模块,思想就是设计一个表,每次查询都清空该表,然后填充数据,最后渲染到网页,现在 ...

存储过程+事务

kogawananari 发表于 2021-4-30 14:10:48

wp231957 发表于 2021-4-30 13:02
就是我做了一个查询模块,思想就是设计一个表,每次查询都清空该表,然后填充数据,最后渲染到网页,现在 ...

unlock 狗都不用就算只有一个用户 你写unlock也会翻车特别是比对差异的那种查询{:5_102:}

wp231957 发表于 2021-4-30 16:43:14

kogawananari 发表于 2021-4-30 14:09
存储过程+事务

这两样 我都不会用
不过我大致搜了一下,也没发现 存储过程+事务   如何能避免大家抢一个表用

kogawananari 发表于 2021-4-30 18:08:04

wp231957 发表于 2021-4-30 16:43
这两样 我都不会用
不过我大致搜了一下,也没发现 存储过程+事务   如何能避免大家抢一个表用

你觉得为什么宕机{:10_277:}因为没有原子性

比如两个人走同一个流程如果这个流程不是事务
一个人语句执行到一半 另一个人见缝插针也开始执行语句 把表锁了
两个人最终变成互相等 或者更严重的后果

如果是事务的话要等前一个人全部流程走完 才能到下一个这样就避免了去抢着执行语句

而unlock是另外一回事了如果用了unlock和nolock
哪怕只有你一个人走流程数据也会不准确(幻读)
页: [1]
查看完整版本: requests请求头中的data问题