【问题标题】:http POST data from c client, blocking by csrf django来自 c 客户端的 http POST 数据,被 csrf django 阻塞
【发布时间】:2016-03-09 19:35:32
【问题描述】:

我需要从 c 客户端(不是浏览器)更新 django 服务器的数据库,我使用 POST 方法更新,标题正文包含 json 数据,因为我没有 csrf 令牌它返回 403 错误

我使用中间件获取这个json数据(使用request.body)并保存到数据库

我的 http 标头:

"POST /post HTTP/1.1 \r\n主机:192.168.1.9\r\n\r\n {\"Lupttime\":\"7-2-2016 17:28\"}"

POST
Host:192.168.1.9

{"Lupttime":"7-2-2016 17:28"}

django 日志:

Forbidden (CSRF cookie not set.): /post
[09/Mar/2016 12:16:15] "POST /post HTTP/1.1 " 403 2629

其他疑问

  • 如何不从浏览器/表单直接更新 django 服务器数据库
  • 我可以轻松获取这样的数据 GET post/?data={x:y} ,但我在某处读到使用 GET 方法更新服务器数据库不是一个好主意
  • 在http header body中发送数据是个好主意

【问题讨论】:

    标签: python django http post


    【解决方案1】:

    你可以使用装饰器

    @csrf_exempt
    def my_view(request):
        #handle request
    

    阅读它here

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-26
      • 1970-01-01
      • 1970-01-01
      • 2019-02-14
      • 2017-04-18
      • 1970-01-01
      相关资源
      最近更新 更多