当前位置: 首页 > news >正文

Django母婴商城项目实践(四)

4、路由规划与设计

1、概述

  • 介绍

    • 路由称为 URL(Uniform Resource Locator,统一资源定位符),也称为 URLconf,对互联网上得到的资源位置和访问方式的一种简洁表示,是互联网上标准梓源的地址。
    • 互联网上的每个文件都有一个唯一的路由,用于指出网站文件的路由位置,也可以理解为我们常说的网址,每个网址代表不同的网页。
  • 作用

    • 用来表示互联网上某个资源的地址。
  • 说明:

    • 互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
  • 语法格式为:

    protocol :// hostname[:port] / path [?query][#fragment]如:http://tts.tmooc.cn/video/showVideo?menuId=657421&version=AID201908#subject
    
  • 说明:

    • protocol(协议)

      • http 通过 HTTP 访问该资源。 格式 HTTP://
      • https 通过安全的 HTTPS 访问该资源。 格式 HTTPS://
      • file 资源是本地计算机上的文件。格式: file:///
    • hostname(主机名)

      • 指存放资源的服务器的域名系统(DNS) 主机名、域名 或 IP 地址。
    • port(端口号)

      • 整数,可选,省略时使用方案的默认端口(0-65535);
      • 各种传输协议都有默认的端口号,如http的默认端口为80、https的默认端口为443。
    • path(路由地址)

      • 由零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。路由地址决定了服务器端如何处理这个请求
    • query(查询)

      • 可选,用于给动态网页传递参数,可有多个参数,用“&”符号隔开,每个参数的名和值用“=”符号隔开。
    • fragment(信息片断)

      • 字符串,用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释。
    • 注: [] 代表其中的内容可省略

2、路由分发规则

1、概述

  • 背景
    • 一个项目中可能存在多个应用,而在 项目文件夹 下的 urls.py 文件中定义所有应用各种功能的路由地址,则会造成:代码可维护性降低,难以管理的问题、可扩展性受限、URL匹配错误等问题。
  • 介绍
    • 一个完整的路由包含路由地址、视图函数或视图类、路由变量 和 路由命名

      • 路由地址:即我们常说的网址。
      • 视图函数或视图类:即项目App的views.py文件中定义的函数或类。
      • 路由变量和路由命名:是路由的变量和命名设置,使路由具有动态变化和命名引用功能,
        • 动态变化:指一个路由地址按照某个规律演变多种不同的路由地址;
        • 命名引用:指在视图、模型等其他项目文件中使用路由命名生成对应的路由地址。
  • 实现
    • 将每个应用的路由定义在各自应用的 urls.py 文件中,然后在项目的 urls.py 文件中进行包含(include)。

    • 默认情况下,设置路由地址是在项目同名的文件夹的 urls.py 文件中实现的,这也是由配置文件 settings.py 的 ROOT_URLCONF 决定,当前项目配置的 ROOT_URLCONF 指向 babys 文件夹下的 urls.py

      ROOT_URLCONF = 'babys.urls'
      

2、路由分发

  • 为了更好的区分各个项目应用的路由地址,在 babys 文件夹下的 urls.py 文件中分别为每个项目应用定义一个路由入口。

  • 操作:

    1. 在每个应用的文件夹下都创建一个 urls.py 文件。

    2. 在 babys 文件夹下的 urls.py 文件 为每个项目应用添加对应的路由入口地址。

      from django.urls import path, re_path, includeurlpatterns = [# 为index/commodity/shopper添加路由信息path("", include(("index.urls", "index"), namespace="index"))
http://www.dtcms.com/a/275564.html

相关文章:

  • 算法魅力-BFS解决最短路问题
  • 鸿蒙开发竖的线
  • Typecho集成PHPMailer实现邮件订阅功能完整指南
  • 如何查看服务器当前用户的权限
  • Windows X64环境下mysql5.6.51安装指南
  • 联邦学习客户端异构数据特征对齐:挑战、方法与应用
  • 如何防范金融系统中的SQL注入攻击
  • QWidget的属性
  • Java设计模式实战:备忘录模式与状态机模式的“状态管理”双雄
  • 基于MCP的CI/CD流水线:自动化部署到云平台的实践
  • 英语单词学习系统
  • 周末总结(2024/07/12)
  • 13. https 是绝对安全的吗
  • 代码审计-Struts2漏洞分析
  • 从LLM到VLM:视觉语言模型的核心技术与Python实现
  • React 组件中怎么做事件代理?它的原理是什么?
  • html-初级标签
  • JAX study notes[17]
  • Java从入门到精通!第四天(面向对象(一))
  • Unity VR手术模拟系统架构分析与数据流设计
  • 【设计模式】装饰(器)模式 透明装饰模式与半透明装饰模式
  • 前端MQTT入门指南:从零到实战的完整流程
  • Google浏览器【无法安装扩展程序,因为它使用了不受支持的清单版本】解决方案
  • 【FreeRTOS】信号量
  • 自助KTV选址指南与优化策略
  • 刘火良 FreeRTOS内核实现与应用之5——补充知识(宏)
  • [Python] -实用技巧篇1-用一行Python代码搞定日常任务
  • Effective Modern C++ 条款9:优先考虑别名声明而非typedef
  • C++法则21:避免将#include放在命名空间内部。
  • Java-71 深入浅出 RPC Dubbo 上手 父工程配置编写 附详细POM与代码