母婴商城:设置路由分发规则

一、复习

上篇文章:https://blog.csdn.net/m0_52158568/article/details/120922563

二、设置路由分发规则

  • 在默认情况下,设置路由地址是在项目同名的文件夹的urls.py文件里实现,这也是由配置文件settings.py的ROOT_URLCONF决定,以项目babies为例,配置属性ROOT_URLCONF指向babies文件夹的urls.py
  • 一个项目中可能设有多个项目应用(App),而babies文件夹的urls.py是定义项目所有路由地址的总入口,如果项目中所有路由地址都在babies文件夹的urls.py中定义,当项目功能规模越来越大的时候,babies文件夹的urls.py定义的路由地址就会越来越多,从而造成难以管理的问题。
  • 为了更好区分各个项目应用(App)的路由地址,我们在babies文件夹的urls.py中分别为每个项目应用(App)定义一条路由入口。首先在每个项目应用(App)的文件夹里创建urls.py文件,然后将新建的urls.py添加到babies文件夹的urls.py,添加方法由Django内置函数path和include实现。

1.创建应用的路由文件(子路由) - urls.py

(1)创建index应用的路由文件

在这里插入图片描述

(2)创建commodity应用的路由文件

在这里插入图片描述

(3)创建shopper应用的路由文件

在这里插入图片描述

2.配置项目的路由文件(主路由) - urls.py

- 定义项目的路由集合

在这里插入图片描述

3.设置商城的路由地址

(1)index应用的配置

  • 编写index应用的视图views.py
    在这里插入图片描述

  • indexView为视图函数的名称

  • index.html对应模板文件夹下的一个模板文件

  • 目前index.html只显示一条信息“母婴商城首页”
    在这里插入图片描述

  • 配置index应用的路由urls.py

  • 在路由模式列表里添加一个路由,指向上面定义的视图函数 - indexView
    在这里插入图片描述

  • 测试index应用的路由配置
    在这里插入图片描述

(2)commodity应用的配置

  • 编写commodity应用的视图views.py
    在这里插入图片描述
    在这里插入图片描述

  • 编写commodity应用的路由urls.py
    在这里插入图片描述

  • 测试commodity应用的路由配置
    在这里插入图片描述

(3)shopper应用的配置

  • 编写shopper应用的视图views.py
    在这里插入图片描述

  • 编写shopper应用的路由urls.py
    在这里插入图片描述

  • 测试shopper应用的路由配置
    在这里插入图片描述

4.路由的定义规则

  • 每个urls.py文件的路由地址必须在列表urlpatterns里定义,换句话说,每个urls.py必须设有一个列表urlpatterns,该列表是用于定义路由信息。
  • 每条路由是由函数path定义,函数path设置了3个参数:第一个参数是设置具体的路由地址;第二个参数是指向项目应用的views.py的某个视图函数或视图类,负责处理路由的业务逻辑;第三个参数为name='XXX’,这是函数path的可选参数,该参数是命名路由地址。
  • 如果函数path第二个参数使用内置函数include,该路由是实现路由分发功能。也就是说,如果函数path的第二个参数是函数include,该路由为路由分发;如果函数path的第二个参数是项目应用的views.py的视图类或视图函数,该路由为网站的路由地址。
  • 函数path是Django 2.0以上版本定义的内置函数,如果开发环境是Django 1.X版本,那么路由定义应使用函数url。从参数的角度分析,函数path和函数url的参数设置是相同的只不过函数url定义的路由地址需设置路由符号和s。代表当前路由地址的相对路径;s代表当前路由地址的终止符。1.x和2.x版本逐渐淘汰,定义省略。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值