Django 中的 HTTP post 请求
HTTP post request in Django
我正在尝试执行以下操作:
1) 付款解决方案应该向我的网站
发送 HTTP Post
2) 我想阅读请求的内容(xml) 并更新我的记录以反映付款
我是第一次尝试这个。当我创建一个 URL 路径,并向该地址发送一个 post 时,我收到了 csrf 错误。
有没有一种使用 Django 的方法,我可以在其中接受 post 而不必 return 响应。
谢谢
坦迈
您的视图应该 return 一个 http 响应,否则您会得到一个错误。然而,Django 并不介意该响应是否不包含任何内容。您的观点可以很简单:
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def my_view(request):
# do something with request.POST
return HttpResponse("")
由于是第三方提交 post 请求,而不是用户在您的网站上提交表单,您可以使用 csrf_exempt
将视图标记为不受 CSRF 保护装饰器,如上所述。
请注意,任何人都可以向您的 url 提交 post 请求,因此您应该有一些方法来检查响应是否真实。您的支付解决方案应该能够建议一种合适的方式来执行此操作。
我正在尝试执行以下操作:
1) 付款解决方案应该向我的网站
发送 HTTP Post
2) 我想阅读请求的内容(xml) 并更新我的记录以反映付款
我是第一次尝试这个。当我创建一个 URL 路径,并向该地址发送一个 post 时,我收到了 csrf 错误。
有没有一种使用 Django 的方法,我可以在其中接受 post 而不必 return 响应。
谢谢 坦迈
您的视图应该 return 一个 http 响应,否则您会得到一个错误。然而,Django 并不介意该响应是否不包含任何内容。您的观点可以很简单:
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def my_view(request):
# do something with request.POST
return HttpResponse("")
由于是第三方提交 post 请求,而不是用户在您的网站上提交表单,您可以使用 csrf_exempt
将视图标记为不受 CSRF 保护装饰器,如上所述。
请注意,任何人都可以向您的 url 提交 post 请求,因此您应该有一些方法来检查响应是否真实。您的支付解决方案应该能够建议一种合适的方式来执行此操作。