В настоящее время я просматриваю различные учебники Django, чтобы понять, как работает отображение URL. Я наткнулся на пример, который является чем-то вроде этогоНе могу понять, почему это URL-адрес работает?
это в моем urls.py
url(r'admin_page_edit$',"adminApp.views.showClientDetails",name="admin_page_edit"),
это в моем HTML-страницу, которая отображается в данный момент пользователю
<a href="{% url "admin_page_edit" %}?uname=SomeVal&par2=value" >
сейчас URL, отображаемый браузером при щелчке по ссылке выше href. Нет проблем там
http://127.0.0.1:8000/admin_page_edit?uname=SomeVal&par2=value
И выше URL земли в соответствующем представлении
adminApp.views.showClientDetails
Теперь здесь не является proble, это, кажется, все работы, но я запутался, почему это работает? поскольку URL в браузере
http://127.0.0.1:8000/admin_page_edit?uname=SomeVal&par2=value
который не соответствует строке регулярного выражения в URL
admin_page_edit$
(выше регулярное выражение означает, что если строка заканчивается admin_page_edit
), но строка URL не заканчивается с admin_page_edit
вместо этого
http://127.0.0.1:8000/admin_page_edit?uname=SomeVal&par2=value
, таким образом, заканчивая par2=value
Мой вопрос: почему это попадает в соответствующее определение в представлении, когда регулярное выражение URL не совпадает?
The? обычно означает, что последующие будут значениями. Страница заканчивается до? и что следует за значениями, которые будут отправлены методу POST для этой страницы. – AK47
Отображение сопоставляет путь к URL-адресу, который в вашем случае является '/ admin_page_edit', который соответствует. Часть URL-адреса '? ...' - это [запрос] (https://en.wikipedia.org/wiki/Uniform_Resource_Identifier#Syntax) (** не ** данные POST-файла). –