我有一个看法打算只处理与GET请求的POST操作视图
user = User.objects.get(username=request.POST['name'])
开始POST请求,我需要确保视图不与GET请求调用?不知道我是否在考虑良好的做法/安全类型的东西或是OCD。
我使用@require_POST
修饰器,因为调用"Key 'name' not found in <QueryDict: {}>
GET结果和500错误的视图。
我想这种情况发生的唯一机会是,如果用户查看页面的HTML,并出于某种原因想要尝试地址栏中表单的action
属性 - 这似乎不大可能。
我已经试过这个自己与几个网站,并得到了一个错误页面,而不是与@require_POST
@require_POST
给我的405错误的空白页面。
也许这是很好的做法,以防止万一模板设计错误,使一个超链接到我的视图或忘记method="post"
GET请求? (在这种情况下,我想我应该使用上面的get_object_or_404
)
我认为将@require_GET
添加到仅用于处理GET请求的视图是非原则的吗?
是EAFP风格和一个500错误适当?尝试:用户名= request.POST ['名称']除KeyError:返回HttpResponseServerError('坏名字') – KnewB
我认为这是完全合适的,我认为主要问题是你控制一个错误,不让未处理的条件控制错误。我相信你的try语句是一个很好的为什么要处理这个问题 – dm03514
哎呦我的意思是返回HttpResponseServerError('Error:user required')' – KnewB