Django——URL详解/Django中URL是如何与urls文件匹配的

URL标准语法

protocol://hostname[:port]/path/[:parameters][?query]#fragment

https://i.cnblogs.com/EditPosts.aspx?postid=11595847

protocol协议:http,https,ftp,ldap

hostname ip协议

port 端口

path 路径

parameters 参数

query 查询

fragment 锚点

详细举例说明

https://baike.baidu.com/item/django/61531?fr=aladdin#1

其中:

https 协议

baike.baidu.com/item/django/61531  到问号前都是地址,端口不显示

fr=aladdin  要查询的内容

#1 锚点

 

Django中URL是如何与urls文件匹配的 

http://127.0.0.1:8000/index/

现在先匹配 项目中的urls.py   http://127.0.0.1:8000

然后匹配 app中的urls.py  index/ 

1、发起请求  "polls/34/" 

2、Django 载入 mysite.urls模块  (在ROOT_URLCONF中设置)

3、Django寻找名为 urlpatterns 变量并按序匹配正则表达式

4、找到‘polls/’ 就切掉匹配的文本, 将剩余文本--‘34/' 发送至‘polls.urls’ URLconf作进一步处理

5、这里剩余文本‘34/’ 匹配了 ’<int:question_id>/‘  

所以此时就调用了 detail()