使用 require_GET 装饰是否增加了价值?
Does this use of the require_GET decorated add value?
我正在 how to add a favicon 上阅读此页面到 Django 网站。在本文中,提供了以下代码以从项目根目录提供网站图标:
@require_GET
@cache_control(max_age=60 * 60 * 24, immutable=True, public=True) # one day
def favicon(request: HttpRequest) -> HttpResponse:
if settings.DEBUG:
name = "favicon-debug.png"
else:
name = "favicon.png"
file = (settings.BASE_DIR / "static" / name).open("rb")
return FileResponse(file)
我知道 @require_GET
装饰器将确保只能使用 GET 请求打开此“页面”(或者在本例中只是一张图片)。但是我想知道,既然我们在这里输出的只是一张静态图像,那么这样做有什么价值吗?为什么会有这个装饰器?
肯定不会痛,但绝对没有必要。在您的情况下,您的 favicon()
方法仅提供一种功能,并且只会以一种方式执行。因此,装饰器几乎完全是多余的。
作者可能只是把它放在那里,因为他们听说这是“最佳实践”。他们可能也一直在将其用于所有其他观点。
下面是关于安全堆栈交换的更完整的解释:https://security.stackexchange.com/questions/199776/why-should-someone-block-all-methods-other-than-get-and-post-in-a-restful-applic。
我正在 how to add a favicon 上阅读此页面到 Django 网站。在本文中,提供了以下代码以从项目根目录提供网站图标:
@require_GET
@cache_control(max_age=60 * 60 * 24, immutable=True, public=True) # one day
def favicon(request: HttpRequest) -> HttpResponse:
if settings.DEBUG:
name = "favicon-debug.png"
else:
name = "favicon.png"
file = (settings.BASE_DIR / "static" / name).open("rb")
return FileResponse(file)
我知道 @require_GET
装饰器将确保只能使用 GET 请求打开此“页面”(或者在本例中只是一张图片)。但是我想知道,既然我们在这里输出的只是一张静态图像,那么这样做有什么价值吗?为什么会有这个装饰器?
肯定不会痛,但绝对没有必要。在您的情况下,您的 favicon()
方法仅提供一种功能,并且只会以一种方式执行。因此,装饰器几乎完全是多余的。
作者可能只是把它放在那里,因为他们听说这是“最佳实践”。他们可能也一直在将其用于所有其他观点。
下面是关于安全堆栈交换的更完整的解释:https://security.stackexchange.com/questions/199776/why-should-someone-block-all-methods-other-than-get-and-post-in-a-restful-applic。