无法理解为什么这个 url 映射有效?
Cant understand why this url mapping is working?
我目前正在阅读各种 Django 教程,以了解 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 link 时显示。没问题
http://127.0.0.1:8000/admin_page_edit?uname=SomeVal&par2=value
以上URL登陆相应的view
adminApp.views.showClientDetails
问题来了,这似乎一切正常,但我很困惑为什么会这样?因为浏览器的 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 正则表达式不匹配时,为什么这会命中视图中的相应定义?
Django url 解析器不处理查询字符串(?
之后的部分)。为什么?因为它们不需要处理。您可以将任何查询字符串附加到任何 url:
赞:https://www.facebook.com/?request=pleasedonotwork 效果一样。除非重定向( 或某些日志记录)是基于 url 中发送的查询完成的,否则您可以将 url 的查询部分视为 被动.
可以通过 request.GET
QueryDict
在 Django 视图中访问这些查询字符串
我目前正在阅读各种 Django 教程,以了解 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 link 时显示。没问题
http://127.0.0.1:8000/admin_page_edit?uname=SomeVal&par2=value
以上URL登陆相应的view
adminApp.views.showClientDetails
问题来了,这似乎一切正常,但我很困惑为什么会这样?因为浏览器的 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 正则表达式不匹配时,为什么这会命中视图中的相应定义?
Django url 解析器不处理查询字符串(?
之后的部分)。为什么?因为它们不需要处理。您可以将任何查询字符串附加到任何 url:
赞:https://www.facebook.com/?request=pleasedonotwork 效果一样。除非重定向( 或某些日志记录)是基于 url 中发送的查询完成的,否则您可以将 url 的查询部分视为 被动.
可以通过 request.GET
QueryDict