为啥django不处理PUT方法带过来的表单
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥django不处理PUT方法带过来的表单相关的知识,希望对你有一定的参考价值。
参考技术A django 一般是用template来做页面的,如何编写模板和调用模板请参考:http://djangobook.py3k.cn/chapter04/
当然如果页面里不用加载数据的话你可以直接写个静态的html页面。
“设置文本框默认有字,点修改按钮可以把文本框中的字改变。”这些要求在HTML里写个简单的脚本就行了(模板和HTML差不多的,模板不一样的地方就是用编地方需要服务器填充数据)。
为啥 Django 没有 405 的错误页面处理程序 - 方法不允许?
【中文标题】为啥 Django 没有 405 的错误页面处理程序 - 方法不允许?【英文标题】:Why Django doesnt have Error Page Handler for 405 - Method Not Allowed?为什么 Django 没有 405 的错误页面处理程序 - 方法不允许? 【发布时间】:2018-08-16 03:54:59 【问题描述】:当我阅读 Django 文档时,我发现只有以下处理程序: 400, 403, 404, 500 个错误。
为什么 405 错误处理程序不存在,但像 require_POST() 这样的装饰器却很常见?
关键是,为 Method Not Allowed 错误创建自定义错误页面的正确方法是什么?
我使用 Django 中间件解决了我的问题,也许这会对某人有所帮助
from django.http import HttpResponseNotAllowed
from django.shortcuts import render
class HttpResponseNotAllowedMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
response = self.get_response(request)
if isinstance(response, HttpResponseNotAllowed):
return render(request, '405.html', status=405)
return response
【问题讨论】:
检查这个 - ***.com/questions/22983222/… 问题不是我有 405 错误的原因 - 我知道为什么。问题是如何处理自定义错误页面的 405 错误。 您可以创建自定义处理程序 - 如果您使用 Django Rest Framework 之类的 django-rest-framework.org/api-guide/exceptions 或使用类似 medium.com/@mwhitt.w/… 的方法 - 创建自定义处理函数并在那里分配状态。 【参考方案1】:如果您想为每个视图提供不同的响应,您可以覆盖您的函数,例如:
class someView(View):
....
def http_method_not_allowed(self, request, *args, **kwargs):
return HttpResponse("Not available")
如果你想知道函数的作用,请查看https://github.com/django/django/blob/master/django/views/generic/base.py#L90
【讨论】:
以上是关于为啥django不处理PUT方法带过来的表单的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Django 的 HTTPResponseRedirect 使用相同的 HTTP 方法进行 PUT 而不是 POST?