python - 为什么在这种情况下,在 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的函数调用中没有请求输入,那么为什么在编写初始函数时需要请求参数,请求参数是做什么的,这个请求参数在哪里?它的属性是什么?我真的很感激对其品质的彻底回应。
解决方案
视图函数,或简称视图,是一个接受 Web 请求并返回 Web 响应的 Python 函数。所以每个视图都必须接受一个request
参数。
该request
对象包含有关请求的元数据,例如使用的 HTTP 请求方法、客户端的 IP 地址等。您可以在HttpRequest
此处找到列表
也来自文档。
一旦其中一个 URL 模式匹配,Django 就会导入并调用给定的视图,这是一个 Python 函数(或基于类的视图)。视图传递了以下参数:
HttpRequest 的一个实例。
如果匹配的 URL 模式不包含命名组,则来自正则表达式的匹配项作为位置参数提供。
关键字参数由提供的路径表达式匹配的任何命名部分组成,被 django.urls.path() 或 django.urls.re_path() 的可选 kwargs 参数中指定的任何参数覆盖。
推荐阅读
- react-native - 从 react-native-web 应用程序使用参数访问 URL
- java - 带有 Spring Boot 的 Soap Web 服务响应标头
- image-processing - 固定 Gabor 滤波器卷积神经网络
- android - DownloadManager 无法使用 Pie 下载到三星的外部存储
- windows - 如何为 Windows 10 注册自定义协议?
- java - 如何使用 socket io 监听 tcp 端口?
- android - webview-window.getselection() 值即将变为 null
- ios - 带有 Swift 5.0 编译器的 Xcode 10.2 - 协议继承问题
- git - git reset --soft "HEAD^6" 是什么意思?
- java - 无法使用模拟来抛出异常 - 抛出的异常没有被捕获