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

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

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

2、配置项目的路由文件(主路由) - urls.py
(1)定义项目的路由集合
使项目的urls.py的urlpatterns指向每个应用的urls.py,具体配置如下:

(二)路由分发详解
1、路由函数include的参数说明
从上面看到,我们设置项目路由分发功能的时候,除了使用内置函数path和include之外,还在路由中设置了参数namespace,该参数是可选参数,是Django设置路由的命名空间。

路由函数include设有参数arg和namespace,参数arg指向项目应用App的urls.py文件,其数据格式以元组或字符串表示;可选参数namespace是路由的命名空间。

若要对路由设置参数namespace,则参数arg必须以元组格式表示,并且元组的长度必须为2。以路由path(’’, include((‘index.urls’, ‘index’), namespace=‘index’))为例,参数arg为(‘index.urls’, ‘index’),参数的每个元素说明如下:

第一个元素为项目应用的urls.py文件,比如(‘index.urls’,‘index’)的“index.urls”,这是代表项目应用index的urls.py文件。
第二个元素可以自行命名,但不能为空,一般情况下是以项目应用的名称进行命名,如(‘index.urls’,‘index’)的“index”是以项目应用index进行命名的。
如果路由设置参数namespace并且参数arg为字符串或元组长度不足2的时候,比如我们将首页的路由分发设为path(’’, include((‘index.urls’), namespace=‘index’)),当运行项目的时候,Django就会提示错误信息,如下图所示。

将路由函数include的第一个参数设置为二值元组,再启动项目就没有错误。

2、路由函数include的作用
路由函数include的作用是将当前路由分配到某个项目应用的urls.py文件,而项目应用的urls.py文件可以设置多条路由,这种情况类似计算机上的文件夹A,并且该文件夹下包含多个子文件夹,而`Django的命名空间namespace相当于对文件夹A进行命名。

假设项目路由设计为:在babies文件夹的urls.py定义3条路由,每条路由都使用路由函数include,并分别命名为A、B、C,每条路由对应某个项目应用的urls.py文件,并且每个项目应用的urls.py文件里定义若干条路由。

根据上述的路由设计模式,将babies文件夹的urls.py视为计算机上的D盘,在D盘下有3个文件夹,分别命名为A、B、C,每个项目应用的urls.py所定义的若干条路由可视为这3个文件夹里面的文件。在这种情况下,Django的命名空间namespace等同于文件夹A、B、C的文件名。

三个命名空间:index、commodity、shopper

三个命名空间对应的三个文件夹:index、commodity、shopper

Django的命名空间namespace可以为我们快速定位某个项目应用的urls.py,再结合路由命名name就能快速地从项目应用的urls.py找到某条路由的具体信息,这样就能有效管理整个项目的路由列表。有关路由函数include的定义过程,可以在Python安装目录下找到源码(Lib\site-packages\django\urls\conf.py)进行解读。
(三)设置商城的路由地址
我们已在babys文件夹的urls.py分别为项目应用index、shopper和commodity设置路由分发功能,本节将会在项目应用index、shopper和commodity的urls.py定义网站首页、商品列表页、商品详细页、购物车页面、个人中心页面和用户登录注册页面的路由地址。

1、index应用的配置
(1)编写index应用的视图views.py

indexView为视图函数的名称

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

目前index.html只显示一条信息“母婴商城首页”

render()用于渲染模板页面

(2)配置index应用的路由urls.py
在路由模式列表里添加一个路由,指向上面定义的视图函数 - indexView

(1)第一个参数为空字符串,这是设置具体的路由地址,由于babies文件夹的urls.py的路由分发为path(’’, include((‘index.urls’, ‘index’), namespace=‘index’)) , 即代表网址127.0.0.1:8000,而index的urls.py定义的路由地址index设为空字符串,那么路由地址index的网址为127.0.0.1:8000。
(2)第二个参数为indexView,这是指向项目应用index的views.py的某个视图函数或视图类,当用户在浏览器访问127.0.0.1:8000的时候, Django将接收到一个HTTP请求,从该请求中获取路由地址并与自身的路由列表进行匹配,如果路由地址匹配成功, Django将HTTP请求交给路由地址指向的某个视图函数或视图类进行业务处理。
(3)第三个参数为name='index’,这是函数path的可选参数,该参数是命名路由地址。实际开发中必须为每个路由地址进行命名,可以在视图或模板中使用路由名称生成相应的路由地址。
(3)测试index应用的路由配置
启动项目,访问http://127.0.0.1:8000

2、commodity应用的配置
(1)编写commodity应用的视图views.py

(2)编写commodity应用的路由urls.py
在路由模式列表里添加两个路由,指向上面定义的视图函数 - commodityView与detailView

(1)路由shopper代表个人中心页,它的路由空间是path(‘shopper’, include((‘shopper.urls’ ‘shopper’),namespace=‘shopper’),因此路由地址为127.0.0.1:8000/shopper.html,个人中心页的业务逻辑由项目应用shopper的views.py定义的视图函数shopperView实现。
(2)路由login代表用户登录注册页,路由地址为127.0.0.1:8000/shopper/login.html,它的业务逻辑由项目应用shopper的views.py定义的视图函数loginView实现。
(3)路由logout实现个人中心的用户注销功能,路由地址为127.0.0.1:8000/shopper/logout.html,它的业务逻辑由项目应用shopper的views.py定义的视图函数logoutView实现。
(4)路由shopcart代表购物车信息页,路由地址为127.0.0.1:8000/shopper/shopcart.html 它的业务逻辑由项目应用shopper的views.py定义的视图函数shopcartView实现。
(3)测试shopper应用的路由配置
启动项目,访问http://127.0.0.1:8000/shopper.html

访问http://127.0.0.1:8000/shopper/login.html

访问http://127.0.0.1:8000/shopper/shopcart.html

访问http://127.0.0.1:8000/shopper/logout.html

(四)路由的定义规则
(1)每个urls.py文件的路由地址必须在列表urlpatterns里定义,换句话说,每个urls.py必须设有一个列表urlpatterns,该列表是用于定义路由信息。

(2)每条路由是由函数path定义,函数path设置了3个参数:第一个参数是设置具体的路由地址;第二个参数是指向项目应用的views.py的某个视图函数或视图类,负责处理路由的业务逻辑;第三个参数为name='XXX’,这是函数path的可选参数,该参数是命名路由地址。

(3)如果函数path第二个参数使用内置函数include,该路由是实现路由分发功能。也就是说,如果函数path的第二个参数是函数include,该路由为路由分发;如果函数path的第二个参数是项目应用的views.py的视图类或视图函数,该路由为网站的路由地址。

(4)函数path是Django 2.0以上版本定义的内置函数,如果开发环境是Django 1.X版本,那么路由定义应使用函数url。从参数的角度分析,函数path和函数url的参数设置是相同的只不过函数url定义的路由地址需设置路由符号和s。代表当前路由地址的相对路径;s代表当前路由地址的终止符。1.x和2.x版本逐渐淘汰,定义省略。

母婴商城设置路由分发规则相关推荐

  1. Django讲课笔记07:设置路由分发规则

    文章目录 零.本讲学习目标 一.课程导入 (一)复习 (二)路由 二.新课讲授 (一)设置路由分发规则 1.创建应用的路由文件(子路由) - urls.py (1)创建index应用的路由文件 (2) ...

  2. Django-配置媒体资源-设置路由分发规则(下)

    目录 (一)设置路由分发规则 1.设置路由 (1)在babies文件夹下的settings.py文件中配置属性ROOT_URLCONF (2)在每个app下创建一个路由文件urls.py,并定义一个空 ...

  3. phpcmsV9网页http路由静态化设置——URL地址规则

    现在很多网站基于安全等因素的考虑,都会把动态的http路由url,设置为静态化. 也就是我们常说的: 栏目生成html,路由静态化. 截图对比: 1. 1 动态URL规则 1.2 动态URL效果图 2 ...

  4. 荣耀路由pro没有虚拟服务器,荣耀路由怎么设置端口映射规则

    端口映射功能,可以将荣耀路由 WAN IP 的一个端口映射到局域网中的一台计算机上.当因特网用户访问该 IP 的该端口时,荣耀路由将会自动将该请求映射到已指定的计算机上,并通过该计算机对外提供服务.如 ...

  5. 华为荣耀2s设置虚拟服务器教程,荣耀路由2S怎么设置端口映射规则

    荣耀路由2S除了可以让用户玩转wifi之外还有一些比较高级的玩法,例如设置端口触发规则和设置端口映射规则等等.前者小编已经和大家聊过了,今天小编再来告诉大家怎么设置端口映射规则,快来看看吧! 设置端口 ...

  6. 荣耀路由x1 虚拟服务器,荣耀路由X1增强版怎么设置端口映射规则

    荣耀路由X1增强版既可以设置端口触发规则也可以设置端口映射规则,例如从因特网实时访问家庭网络摄像头.控制家庭网络中的智能设备等等.如果您还不知道怎么操作的话那就让小编来告诉您吧! 设置端口映射规则步骤 ...

  7. 史上最容易的母婴商城——babies

    目录 (一)创建项目 一,创建一个Django项目--babies 二,导入os模块 三,找到settings.py文件并配置好静态文件 四.配置数据库 五.创建数据库 六.迁移数据 (二).创建三个 ...

  8. Express实现路由分发控制、RESTful API

    Express实现路由分发控制.RESTful API 标签(空格分隔): Node.js 最近在用Express作为自己的WEB应用框架,其中最为迷惑的就是Express的路由控制和分发,在网上搜了 ...

  9. 【计算机毕业设计】018母婴商城系统

    一.系统截图(需要演示视频可以私聊) 摘  要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式.本母婴商城系统就是在这样的大环境下 ...

最新文章

  1. 激光雷达和毫米波雷达
  2. Tom Clancy's Splinter Cell: Double Agent
  3. wps分享为什么要登入_【知识点分享】钢筋上的螺纹有什么作用?为什么要有螺纹?...
  4. 【MarkDown】:MarkDown编辑器
  5. 引用参考文献不显示_如何简单几步来一键修改参考文献格式
  6. DPM(Deformable Parts Models)-----目标检测算法理解
  7. pyecharts第九节、旭日图(现代饼图)
  8. HarmonyOS之常用布局PositionLayout的使用
  9. Cannot fit requested classes in a single dex file. Try supplying a main-dex list.
  10. python缩进格式错误的是_19个常见的python错误和异常
  11. 如何看当前windows是utf8还是gbk_职场中的OKR如何“好好说话”
  12. 2019款新iPhone发布时间曝光:依旧9月12日亮相?
  13. 动态的给python添加进度条_python动态进度条的实现代码
  14. javascript option 菜单图标_善用 CSS,不用 JavaScript 也能写出这些元素
  15. mysql计算指定的时间TPS
  16. Atitit word结构化提取考试试题读取 poi读取word nlp aiprj 目录 1.1. 结构化后数据 1 1.2. 文字读取 1 1.3. 图片读取 1 1.4. Doc的表格读取 /
  17. MT7628学习笔记(4)——固件烧录(TFTP方式)
  18. 新人Unity下载安装
  19. NOIP2017提高成绩
  20. php实现登录验证码_PHP实现登录验证码功能

热门文章

  1. 2019-TOG-Adobe-(3D Ken Burns)3D ken burns effect from a single image
  2. 计算机基础语言学习线路图
  3. 33 《对权威的服从:一次逼近人性真相的心理学实验》 -豆瓣评分9.0
  4. Android 上面的定位和Poi检索
  5. Apache服务(一)Apache服务的基本控制
  6. Unity dotween YoYo循环
  7. 【PTA乙级练习题】topic:1001
  8. 是谁用Python弹奏一曲东风破
  9. 南邮 OJ 1446 嘉娃的难题
  10. C#编写数据分析软件(附源码)