我正在向本地运行的Django服务器发出post请求。我正在将请求发送到http://127.0.0.1/login/。这是风景
@csrf_exempt
def login(request):
json_data = json.loads(request.body.decode('utf-8'))
print(json_data)
return request.body
我现在只有@csrf_exempt
,这样我就不用创建视图来获取csrf令牌了。当我发送POST请求时,它工作并打印出我随请求发送的json,但它也打印出这个错误。
Internal Server Error: /login/
Traceback (most recent call last):
File "C:\Users\Moham\AppData\Local\Programs\Python\Python37\lib\site-packages\django\core\handlers\exception.py", line 47, in inner
response = get_response(request)
File "C:\Users\Moham\AppData\Local\Programs\Python\Python37\lib\site-packages\django\utils\deprecation.py", line 119, in __call__
response = self.process_response(request, response)
File "C:\Users\Moham\AppData\Local\Programs\Python\Python37\lib\site-packages\django\middleware\clickjacking.py", line 26, in process_response
if response.get('X-Frame-Options') is not None:
AttributeError: 'bytes' object has no attribute 'get'
这让我感到困惑的原因是我没有引用任何名为“bytes”的对象或名为“get”的属性。有人知道这是怎么回事吗?
视图函数应返回httpresponse
对象。请尝试以下操作:
from django.http import JsonResponse
@csrf_exempt
def login(request):
json_data = json.loads(request.body.decode('utf-8'))
print(json_data)
return JsonResponse(request.POST)
注意您可以使用request.post
或request.get
来获取已解码的请求数据。
问题内容: 我有以下django模板(将http:// IP / admin / start /分配给一个名为view的假设视图): 是视图中引用的Django模型的。每当单击“开始”提交输入时,我都希望“开始”视图在返回渲染页面之前使用函数中的数据。如何将POST(在本例中为隐藏输入)中发布的信息收集到Python变量中? 问题答案: 另外,你的隐藏字段还需要一个可靠的名称,然后是一个值: 然后
当我尝试向邮递员发送邮件请求时,仍然会出现这个错误。 我可以从我的DRFlocalhost成功地发出相同的帖子请求,但是当我尝试邮递员时,我得到了上面的错误。 我该怎么解决呢? Views.py Serializers.py urls.py 项目urls.py 更新 我根据评论中的错误消息和指南进行了一些更改,现在可以创建用户了。 问题是,在发送表单中的用户凭据后,我在postman中收到了这个错
我是ASP的新手。网我对POST请求有问题。也许我的代码错了,我找不到在哪里! 当我尝试post请求时,Postman会向我发送错误消息: "ExceptionType":"System.网。http://http.不支持的媒体类型异常","StackTrace":"àSystem.网。http://http.HttpContent扩展。ReadAsAsync[T](HttpContent内容,类
问题内容: 我正在使用Django Forms通过POST进行过滤/多面搜索,我想使用Django的paginator类来组织结果。在各个页面之间传递客户端时,如何保留原始请求?换句话说,当我将另一个页面的GET请求传递回我的视图时,似乎丢失了POST数据。我已经看到一些使用AJAX仅刷新页面结果块的建议,但是我想知道是否存在Django本地机制来执行此操作。 问题答案: 如果要在以后的请求中访问
<?php $requestBody = array( 'lang' => 'php', 'ver' => 'any' ); $http = HttpRequest::newSession(); $response = $http->post('http://www.baidu.com/', $requestBody);
问题内容: 我不想使用文件,但是只有django才需要发出POST请求。 就像发送请求一样。 问题答案: 结合使用urllib2和urllib中的方法即可解决问题。这是我使用这两种方法发布数据的方式: 是用于打开URL的方法。 将参数转换为百分比编码的字符串。