mar*_*mnl 54 django python-2.7
如果请求GET数据无效且无法解析,我想从我的django视图函数返回HTTP 400响应.
我该怎么做呢?似乎没有Exception像404这样的相应类:
raise Http404
Run Code Online (Sandbox Code Playgroud)
Amb*_*ise 44
从我之前的评论:
此外,您可以创建一个像Http404这样的Exception子类来拥有自己的Http400异常.
问候,
Bri*_*man 24
您可以执行以下操作:
from django.core.exceptions import SuspiciousOperation
raise SuspiciousOperation("Invalid request; see documentation for correct paramaters")
Run Code Online (Sandbox Code Playgroud)
SuspiciousOperation映射到https://github.com/django/django/blob/master/django/core/handlers/base.py第207行的400响应
mim*_*imo 18
从 Django 3.2 开始,您还可以引发BadRequest异常:
from django.core.exceptions import BadRequest
raise BadRequest('Invalid request.')
Run Code Online (Sandbox Code Playgroud)
在某些情况下,这可能比SuspiciousOperation另一个答案中提到的更好,因为它不记录安全事件;请参阅有关例外的文档。
rgi*_*gan 12
如果您使用的是Django Rest Framework,则有两种方法可以在视图中引发400响应:
from rest_framework.exceptions import ValidationError, ParseError
raise ValidationError
# or
raise ParseError
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40925 次 |
| 最近记录: |