Джанго - Запросить разрешение - PullRequest
0 голосов
/ 27 ноября 2018

Я хотел бы знать, как Django разрешает URL-адреса запросов urlpatterns в целом.

Моя теория:

Django в какой-то момент поворачивает все свои urlpatterns в список регулярных выражений, а затем пытается сопоставить их с URL-адресом входящего запроса.

Вопрос:

Я прав?Если да, может кто-нибудь указать мне, где в исходном коде это происходит?

Похоже, в документации django ничего об этом не упоминается, и я чувствую, что выполняю слепой поиск в исходном коде.Любые идеи приветствуются.

1 Ответ

0 голосов
/ 27 ноября 2018

Процесс описан здесь .Вкратце:

  1. Django определяет корневой модуль URLconf для использования ....
  2. Django загружает этот модуль Python и ищет переменную urlpatterns.Это должен быть список Python экземпляров django.urls.path () и / или django.urls.re_path ().
  3. Django пробегает каждый шаблон URL по порядку и останавливается на первом, который соответствуетзапрошенный URL.
  4. Как только один из шаблонов URL совпадает, Django импортирует и вызывает данное представление, которое представляет собой простую функцию Python (или представление на основе классов) ....
  5. Если ни один шаблон URL не совпадает или если в какой-то момент этого процесса возникает исключение, Django вызывает соответствующее представление обработки ошибок ....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...