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. 命名参数(关键字参数):按定义的组名传递

    

 

posted @ 2019-12-02 23:46  靖靖靖靖靖丶  阅读(429)  评论(0编辑  收藏  举报