python - 在 Django 中验证 POST 参数中的 url
问题描述
我正在尝试验证发送的 POST 请求中的参数是否是有效的 URL。
这是我的意见.py
views.py
def post(self, request):
if url_validator(request) == 400:
return Jsonresponse(status=400)
这是我的 utils.py。该文件将包含所有通用方法和类。
def url_validator(request, ext):
for key, value in request.data.items():
value = request.data[key]
try:
URLValidator(value)
except ValidationError:
return 400
当我从视图中调用该函数url_validator
时,它会执行,但当任一请求参数不包含 URL 时,它不会返回异常。例如,如果我传递一个参数param1: "some string"
,它不会通过 ValidationError 路径。如何从函数中获得正确的返回?
解决方案
验证器类不会在其实例化中接受要验证的输入,它会在您调用实例化对象时接受它:
validator = URLValidator()
validator(value)
但这真的不是如何在 Django 中进行验证。使用表单,或者如果您正在处理提交的 JSON,请使用 django-rest-framework 序列化程序。
推荐阅读
- c# - 投射 IQueryable
到 IQueryable 具有更好的性能 - image-processing - ImageMagick/etc.:从扫描中自动去除不干净的边缘?
- django - 通过 Django 中的子查询更新字段
- swiftui - 需要在用户滚动视图 SwiftUI 时停止更新整个视图
- angular - 元素隐式具有“任何”类型,因为“字符串”类型的表达式不能用于索引类型“对象”TS7053
- java - 动态映射 json
- moralis - 如何在节点JS云功能中运行moralis
- c# - ASP.NET Core Razor Page create new for list 总是给出 System.NullReferenceException
- android - 如何从 Compose 中添加现有片段
- c# - 精灵在 Unity 中翻转时改变大小