Django整理(四) - URL配置
1. URL配置
一、需求
1. 需求:在浏览器访问URL地址 http://127.0.0.1:8000/users/index 时,显示hello django信息
2. 实现
i. 需要编写一个视图函数
ii. 针对该视图函数配置访问路由
二、URL配置实现
1. 对于url访问地址 http://127.0.0.1:8000/users/index?a=1,只需要根据users/index进行url配置。
注意:前面的笔记中为了简单,直接在项目下的urls.py文件中进行配置,如下:
2. 但是为了减轻项目下的urls.py文件的配置量,方便url的管理,会分别在两个urls.py文件中进行配置:
· 项目下的urls.py文件
· users应用下的urls.py文件(此文件默认不存在,需要自己创建)
URL配置示例参考:
2. URL匹配流程
URL匹配流程(路由解析顺序)
URL匹配流程说明
1. 域名、端口、端口后的 "/",以及查询字符串(问号后面的键值参数)不参与匹配
2. 先到项目下的urls.py进行匹配,再到应用的urls.py匹配
3. 根据url配置的先后顺序,从上到下进行URL匹配 -----> 这里有个坑,如果上面的url配置覆盖掉了下面的url,容易
出现url匹配错误的情况
4. 在项目下匹配成功的URL部分会去掉,剩下的部分继续到应用下作匹配
5. 如果匹配成功,Django会调用对应的视图函数,返回响应内容给浏览器显示
6. 如果最终匹配不成功,Django会给浏览器返回 404 错误
3. 捕获URL路径中的参数
一、需求
1. 在服务器端视图中,获取通过URL路径传递过来的参数
2. 例如:对于请求URL http://127.0.0.1:8000/news/1/2,需要获取URL路径中的数值1(类别id)和2(页码)
二、解决
1. 在配置URL时,可以使用正则表达式匹配URL中的参数
2. 需要使用 "小括号" 把要匹配的值变为正则的一个组,可以对组命名,也可以不命名
3. 当匹配成功后,Django会自动匹配成功的值,作为一个方法参数传递到视图函数中
三、代码参考
1. 未命名参数(位置参数):按定义的顺序传递
2. 命名参数(关键字参数):按定义的组名传递