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.pswp.cn/pingmian/88920.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/88920.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文阅读:arxiv 2025 A Survey of Large Language Model Agents for Question Answering

https://arxiv.org/pdf/2503.19213 https://www.doubao.com/chat/12038636966213122 A Survey of Large Language Model Agents for Question Answering 文章目录速览论文翻译面向问答的大型语言模型代理综述摘要一、引言速览 这篇文档主要是对基于大型语言模型(…

ONNX 是什么

ONNX 是什么? ONNX,全称 Open Neural Network Exchange,是微软和 Facebook(现在的 Meta)联合发起的一个开放的神经网络模型交换格式。简单理解:ONNX 是一个通用的「AI 模型存档格式」。用 PyTorch、TensorF…

【Python3】掌握DRF核心装饰器:提升API开发效率

在 Django REST Framework (DRF) 中,装饰器(Decorators)通常用于视图函数或类视图,以控制访问权限、请求方法、认证等行为。以下是 DRF 中常用的装饰器及其功能说明: 1. api_view 用途: 用于基于函数的视图&#xff0c…

Datawhale AI 夏令营第一期(机器学习方向)Task2 笔记:用户新增预测挑战赛 —— 从业务理解到技术实现

Datawhale AI夏令营第一期(机器学习方向)Task2笔记:用户新增预测挑战赛——从业务理解到技术实现 一、任务核心:业务与技术的“翻译” 本次Task聚焦“用户新增预测挑战赛”的核心逻辑,核心目标是锻炼“将业务问题转化为…

【人工智能】华为昇腾NPU-MindIE镜像制作

本文通过不使用官方镜像,自己在910b 进行华为mindie的镜像制作,可离线安装部署。 硬件:cann 8.0 1. 部署参考文档: 安装依赖-安装开发环境-MindIE安装指南-MindIE1.0.0开发文档-昇腾社区 2. 参数说明文档:https://www.hiascend.com/document/detail/zh/mindie/100/min…

关于我用AI编写了一个聊天机器人……(番外1)

极大地精简了1.3.6版本的逻辑。 不会作为正式版发布。 未填充数据。核心结构代码包含两个主要部分&#xff1a;数据结构&#xff1a;使用map<string, string>存储问答对&#xff0c;其中键是问题&#xff0c;值是答案主程序流程&#xff1a;初始化预定义的问答对进入无限…

全球钠离子电池市场研究,市场占有率及市场规模

钠离子电池是一种新兴的储能技术&#xff0c;利用钠离子&#xff08;Na⁺&#xff09;代替锂离子作为电荷载体&#xff0c;为锂离子电池提供了一种经济高效且可持续的替代品。它们的工作原理类似&#xff0c;在充电和放电循环过程中&#xff0c;钠离子在阳极和阴极之间移动。关…

SwiftUI 全面介绍与使用指南

目录一、SwiftUI 核心优势二、基础组件与布局2.1、基本视图组件2.2、布局系统2.3、列表与导航三、状态管理与数据流3.1、状态管理基础3.2、数据绑定与共享四、高级功能与技巧4.1、动画效果4.2、绘图与自定义形状4.3、网络请求与异步数据五、SwiftUI 最佳实践六、SwiftUI 开发环…

ADC采集、缓存

FPGA学习笔记_李敏儿oc的博客-CSDN博客 TLV5618.v&#xff1a;实现DAC数模转换&#xff0c;产生模拟信号&#xff0c;输出指定电压值 时序图 FPGA学习笔记&#xff1a;数据采集传输系统设计&#xff08;二&#xff09;&#xff1a;TLV5618型DAC驱动-CSDN博客 ADC128S052.v&…

(C++)STL:stack、queue简单使用解析

stack 栈 简介 stack 栈——容器适配器 container adapter 与前面学的容器vector、list的底层实现不同&#xff0c;stack功能的实现是要借助其他容器的功能的&#xff0c;所以看stack的第二个模板参数是容器。 最大特点&#xff1a;LIFO&#xff1a;Last In, First Out&#xf…

在Adobe Substance 3D Painter中,已经有基础图层,如何新建一个图层A,clone基础图层的纹理和内容到A图层

在Adobe Substance 3D Painter中&#xff0c;已经有基础图层&#xff0c;如何新建一个图层A&#xff0c;clone基础图层的纹理和内容到A图层 在 Substance 3D Painter 中克隆底层纹理到新图层的最快做法 操作步骤 添加空白 Paint Layer 在 Layer Stack 顶部点击 → Paint La…

视频编码中熵编码之基于上下文的变长编码(Huffman霍夫曼编码和指数哥伦布)

视频编码中熵编码之基于上下文的变长编码&#xff08;Huffman霍夫曼编码和指数哥伦布&#xff09; 视频编码中熵编码之基于上下文的变长编码Huffman霍夫曼编码和指数哥伦布&#xff09;视频编码中熵编码之基于上下文的变长编码&#xff08;Huffman霍夫曼编码和指数哥伦布&#…

游戏玩法的专利博弈

首席数据官高鹏律师数字经济团队创作 AI辅助一、数字战场的护城河&#xff1a;游戏玩法的专利价值觉醒在数字经济的浪潮中&#xff0c;游戏行业正以每年超15%的增速重塑全球娱乐版图。2024年中国游戏市场规模突破3257亿元&#xff0c;用户规模达6.74亿&#xff08;数据来源&…

小架构step系列11:单元测试引入

1 概述 在还没有写什么代码之前&#xff0c;就引入单元测试&#xff0c;是要强调单元测试的重要性。当一套代码的生命周期比较长的时候&#xff0c;单元测试更加重要。生命周期长的代码&#xff0c;不管是产品人员还是开发人员&#xff0c;可能都会换了一批又一批&#xff0c;…

Linux 文件共享之 HGFS 共享配置全解析

一、前言在使用 VMware 虚拟机搭建 Linux&#xff08;以 Ubuntu 为例&#xff09;环境时&#xff0c;常常需要实现主机与虚拟机之间的文件共享&#xff0c;HGFS&#xff08;VMware Host-Guest File System&#xff09;就是一种常用的文件共享方式。通过它&#xff0c;我们可以方…

模块化设计赋能:定制组装锂电池设备的柔性生产解决方案

在锂电池行业快速迭代的背景下&#xff0c;定制化需求与规模化生产之间的矛盾日益凸显。传统锂电池组装设备采用固定式架构&#xff0c;功能模块高度耦合&#xff0c;导致设备换型周期长、兼容性差&#xff0c;难以适应电芯规格频繁变化、工艺路线持续升级的市场需求。模块化设…

Kubernetes 架构原理与集群环境部署

一&#xff1a;为什么需要 Kubernetes在业务开始进行容器化时&#xff0c;前期需要容器化的项目可能并不多&#xff0c;涉及的容器也并不多&#xff0c;此时基于 Docker 容器直接部署至宿主机也能实现基本的需求。但是随着项目越来越多&#xff0c;管理的容器也会越来越多&…

JavaScript中关于环境对象的拓展

1.环境对象的定义环境对象指的是函数内的特殊变量this&#xff0c;this指向函数的调用者它代表当前函数的运行环境在平常我们判断this经常用口诀谁调用它&#xff0c;它就指向谁&#xff0c;以下是几种常见情况1. 在全局作用域中&#xff0c;this指向window2.在函数中&#xff…

202507中央城市工作会议

国家终于要给城市"升级系统"了&#xff01;未来城市不再拼命盖新楼&#xff0c;而是让现有城区更安全、舒适、智能&#xff0c;且每个城市都要找到自己的特色发展路径 2025年7月北京“中央城市工作会议”。领导人聚在一起&#xff0c;讨论“怎么把中国城市搞得更好”…

springboot如何redis锁

如何解决超卖问题?超卖问题&#xff1a;就是多个线程并发执行&#xff0c;目前唯一方案是加锁。如图&#xff1a;悲观锁其实还有数据库的互斥锁。悲观锁是最常见的乐观锁实现的原理&#xff1a;版本号&#xff1a;这种方案就是&#xff1a;扣款库存的时候首先先查询版本号&…