В Django, как передача ссылки на функцию views в конечном итоге вызывается функцией path?
Я знаю, что мой вопрос очень похож на что такое "request" в Django view, но я не могу понять смысл предоставленных ответов. Я также прочитал документацию, которая связана с моим вопросом, но все еще не понимаю. Я был бы очень признателен за любые уточнения к другим ответам в дополнение ко всему, о чем я спрашиваю, что не освещено в этом вопросе.
В views.py
мы можем иметь что-то вроде этого:
from django.shortcuts import render
from django.http import HttpResponse
def home(request):
return HttpResponse("Hello, World")
А в urls.py
мы имеем что-то вроде этого:
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='hello-world-home'),
]
В моем вопросе views.home
передается в качестве параметра в path
. Судя по одному из ответов на аналогичный вопрос, views.home
передает "объект функции" в качестве параметра в path
. Если это не вызов функции, разве нам не нужно передавать ее так: views.home()
? Как в конечном счете она будет вызвана path
?
Если есть какая-то документация о возможности передачи ссылки на функцию в Python, я был бы признателен, если бы вы могли дать ссылку на нее.
Является ли возможность передавать ссылку на функцию исключительно для Python, или это можно повторить в компилируемом языке (например, C++)?
Чтобы правильно понять, как работает функция path в Django, вам нужно прочитать метод path
Вот ссылка, чтобы перейти к определению Пути.
https://github.com/django/django/blob/main/django/urls/conf.py#L57
Надеюсь, это поможет вам разрешить вашу путаницу.