文章目录
一、复习
上篇文章: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版本逐渐淘汰,定义省略。