URL分发机制简介

简介: 【2月更文挑战第12天】URL分发机制简介。

URL的基本格式为“协议://域名或IP地址/路径/文件名”。
域名或IP地址在Web服务器中分配给Web站点。
路径是网络资源在Web服务器中的逻辑路径。
文件名通常与网络资源的物理文件名一致。
例如,http://jxjy.xhu.edu.cn/85/15/ c2647a99605/page.htm。
其中:
http是访问WWW服务的常用
“jxjy.xhu.edu.cn”是域名
“85/15/c2647a99605”是文件“page.htm”在Web服务器中的路径。
Django提供了灵活的URL分发机制,允许用户使用任意格式的URL“路径/文件名”部分。
Django接收到请求的URL时,开始执行URL分发,按顺序执行下列操作。
(1)启用根URL配置模块。根URL配置模块由项目配置文件settings.py中的ROOT_URLCONF变量设置。例如,ROOT_URLCONF = 'HelloWorld.urls'。
(2)加载根URL配置模块,并查找变量urlpatterns。urlpatterns是一个URL模式列表,每个列表项是一个django.urls.path()或django.urls.re_path()实例,示例代码如下。
urlpatterns = [
path('',views.hello,name='hello'),
re_path(r'^\d{2,}$',useRe_View.NumberInUrl), ]
(3)按顺序遍历每个URL模式,在找到与请求的URL相匹配的第一个模式时停止。
(4)Django调用匹配的URL模式所映射的视图函数,将函数返回值作为响应结果返回给用户。视图函数接收下列参数:
一个HttpRequest对象实例:它封装了客户端请求的相关信息。
URL参数:如果匹配的URL模式中嵌套了变量,则将URL路径中的匹配内容赋值给变量,将其作为参数传递给视图函数。
kwargs参数:向视图函数传递其他参数值。
(5)如果没有找到匹配的URL模式,或者此过程中的任何位置引发错误,Django将调用错误处理视图。
默认情况下,Django会为项目创建一个urls.py文件,将其作为URL配置模块,也称为根URL配置模块。
Django将URL配置称为URLconf。
通常情况下,项目的URL配置模块放在与项目同名的子文件夹中。
例如,在myDjango项目中,“myDjango\myDjango\urls.py”为项目URL配置模块。
项目应用也可以使用自己的URL配置模块。
例如,“myDjango\first\urls.py”为项目应用first的URL配置模块。URL配置模块的文件名按惯例使用urls.py,也可以使用其他的文件名。
Django在执行URL分发操作时,会首先加载根URL配置模块,不会直接访问应用的URL配置模块。
Django一般在根URL中,通过URL配置包含应用的URL配置模块。根URL配置模块是必需的,应用的URL配置模块则是可选的。
在执行“python manage.py startproject”命令创建项目时,Django默认在根URL配置模块中添加了“path('admin/', admin.site.urls)”。
admin.site.urls是Django提供的管理站点项目的URL配置模块。通过“admin”路径,来访问Django管理站点。

相关文章
|
5月前
|
网络协议 安全 物联网
《复杂环境下IPv6地址规划与子网划分全攻略》
随着网络环境日益复杂及设备数量激增,IPv6以其超大地址空间和即插即用优势成为网络变革的关键。本文深入探讨IPv6地址规划与子网划分的挑战与方法,包括夯实基础知识、遵循层次性与高效性原则、应对物联网与云计算等特殊场景需求,以及验证优化的重要性。通过合理规划与科学划分,可构建高效、稳定且安全的IPv6网络,为未来发展奠定基础。
318 19
|
运维 监控 网络协议
什么是运营商级 NAT (CGNAT)?
【4月更文挑战第16天】
5166 10
什么是运营商级 NAT (CGNAT)?
|
搜索推荐 Java 应用服务中间件
【Maven】IDEA部署配置Maven项目教程,IDEA配置Tomcat(2019.3.3)(2023.1.3)
当涉及到软件开发和项目管理时,使用一个可靠的构建工具是非常重要的。Maven是一个广泛使用的构建工具,它为Java项目提供了一种简化的构建过程和依赖管理。 在本文中,我们将探讨如何部署Maven并开始使用它来构建您的项目。我们将介绍所需的步骤,并向您提供一些有用的提示和建议。
【Maven】IDEA部署配置Maven项目教程,IDEA配置Tomcat(2019.3.3)(2023.1.3)
|
监控 Java 调度
分布式系列教程(17) - 分布式任务调度平台XXL-JOB
分布式系列教程(17) - 分布式任务调度平台XXL-JOB
466 0
|
测试技术 持续交付 Apache
性能怪兽来袭!Python+JMeter+Locust,让你的应用性能飙升🦖
【8月更文挑战第5天】随着互联网应用规模增长,性能测试至关重要。本文介绍如何利用Python结合Apache JMeter和Locust构建高效可定制的性能测试框架。JMeter广泛用于负载测试,通过模拟大量虚拟用户并发访问来评估性能。Locust基于Python,通过编写简单脚本模拟HTTP请求,特别适合Web应用测试,比JMeter更灵活易扩展。Python作为胶水语言简化测试脚本编写并流畅自动化流程。文章提供JMeter命令行测试和Locust脚本示例,并展示如何用Python自动化执行和整合测试结果,最终帮助应用在高负载下稳定运行。
230 1
|
10月前
|
网络协议 数据库 网络架构
OSPF邻居关系建立过程详解
OSPF邻居关系建立过程详解
708 6
|
设计模式 算法 网络协议
社招offer-腾讯T9-70W年薪(面试经验分享)(上)
社招offer-腾讯T9-70W年薪(面试经验分享)
|
10月前
|
机器学习/深度学习 自然语言处理 C++
TSMamba:基于Mamba架构的高效时间序列预测基础模型
TSMamba通过其创新的架构设计和训练策略,成功解决了传统时间序列预测模型面临的多个关键问题。
785 4
TSMamba:基于Mamba架构的高效时间序列预测基础模型
|
并行计算 PyTorch 算法框架/工具
LLM推理引擎怎么选?TensorRT vs vLLM vs LMDeploy vs MLC-LLM
有很多个框架和包可以优化LLM推理和服务,所以在本文中我将整理一些常用的推理引擎并进行比较。
1687 2
|
消息中间件 存储 监控
RabbitMQ 死信队列
RabbitMQ的死信队列(DLQ)是存储无法正常消费消息的特殊队列,常见于消息被拒绝、过期或队列满时。DLQ用于异常处理、任务调度和监控,通过绑定到普通队列自动路由死信消息。通过监听死信队列,可以对异常消息进行补偿和进一步处理,提升系统稳定性和可维护性。
306 1