首页 > 解决方案 > 为什么在这种情况下,在 Django 中,views.py 中的函数需要请求参数?

问题描述

在 url.py 中,我在主 urlpatterns 列表中设置了一个新路径:

path('ko/', views.ko),

我了解到我需要在 views.py 中编写此函数才能使网页正常运行:

 def ko(request):
    return HttpResponse("It's a page")

我的问题是为什么当我将参数留空而不是请求时函数不起作用?:

def ko():
     return HttpResponse("It's a page")

当我删除请求参数时运行页面会输出 TypeError:ko() 接受 0 个位置参数,但给出了 1 个。

如果我在views.ko的函数调用中没有请求输入,那么为什么在编写初始函数时需要请求参数,请求参数是做什么的,这个请求参数在哪里?它的属性是什么?我真的很感激对其品质的彻底回应。

标签: pythondjangodjango-viewsdjango-request

解决方案


视图函数,或简称视图,是一个接受 Web 请求并返回 Web 响应的 Python 函数。所以每个视图都必须接受一个request参数。

request对象包含有关请求的元数据,例如使用的 HTTP 请求方法、客户端的 IP 地址等。您可以在HttpRequest 此处找到列表

也来自文档

一旦其中一个 URL 模式匹配,Django 就会导入并调用给定的视图,这是一个 Python 函数(或基于类的视图)。视图传递了以下参数

HttpRequest 的一个实例。

如果匹配的 URL 模式不包含命名组,则来自正则表达式的匹配项作为位置参数提供。

关键字参数由提供的路径表达式匹配的任何命名部分组成,被 django.urls.path() 或 django.urls.re_path() 的可选 kwargs 参数中指定的任何参数覆盖。


推荐阅读