我正在学习Django,我想知道空括号或def name后面的()是什么意思。
urls.py
from django.urls import path
from . import views
app_name = "app_name"
urlpatterns = [path("list", views.list_rooms())] #'list_rooms()' did not work
urlpatterns = [path("list", views.list_rooms)] #'list_rooms' did workviews.py
def list_rooms(request):
~~当它是list_rooms()时,它引发了请求: TypeError TypeError: list_rooms()缺少一个必需的位置参数:'request‘
谢谢。
发布于 2020-03-06 22:51:10
通过执行list_rooms(),可以立即调用函数,但是通过使用list_rooms,可以将函数作为参数传入。
单独运行list_room将产生如下输出:<function list_rooms at 0x00000248EA961620>。
发布于 2020-03-06 22:56:03
您可以将list_rooms()视为调用该视图(这是一个函数)的方式。
而这里使用list_room作为视图的名称,以便您引用它。
https://stackoverflow.com/questions/60566462
复制相似问题