Django学习4——URL分发

本文详细介绍了Django的URL分发机制,包括URL配置、URL解析函数、使用正则表达式、包含其他URL配置及URL参数传递。通过实例展示了如何定义URL模式,匹配请求并调用相应的视图函数,以及如何利用路径转换器进行不同类型的数据转换。
摘要由CSDN通过智能技术生成

1.1、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分发任务,按顺序执行下列操作。

(1)启用根URL配置模块。根URL配置模块有项目配置文件settings.py中的ROOT_URLCONF变量设置。例如,ROOT_URLCONF=“HelloWorld.urls”

(2)加载根URL配置模块,并查找变量urlpatterns.urlpatterns是一个URL模式列表,每个列表项是一个django.urls.path() 或django.urls.re_path() 实例

(3)按顺序遍历每个URL模式,在找到与请求的URL相匹配的第一个模式时停止。

(4)Django调用匹配的URL模式所映射的视图函数,将函数返回值作为响应结果返回给用户。视图函数接受下列参数:

         (Ⅰ)一个HttpRequest对象实例:它封装了客户请求的相关信息。

         (Ⅱ)URL参数:如果匹配的URL模式中嵌套了变量,则将URL路径中的匹配内容赋值给变量,将其作为参数传递给视图函数。

         (Ⅲ)kwargs参数:向视图函数传递其他参数值。

(5)如果没有找到匹配的URL模式,或者此过程中任何位置引发错误,Django将调用错误处理视图。

2、URL配置

2.1、URL解析函数

URL配置文件中的urlpatterns变量为URL解析函数的实例列表。Django提供两个URL解析函数:

django.urls.path()  和 django.urls.re_path()( django.conf.urls.url()是 django.urls.re_path()的别名,并有可能在未来弃用)

from django.contrib import admin
from django.urls import path
from demo1 import views

urlpatterns = [
    path('', views.hello,name='hello'),
    path('admin/', admin.site.urls),
]
from django.contrib import admin,导入Django的默认管理站点admin。
from django.urls import path, 导入URL解析函数path().
from demo1 import views,  导入当前目录中的视图模块views(对应views.py文件)

urlpatterns变量包含了两个URL映射

(1)path('', views.hello,name='hello'),第一个参数是空字符串,用于匹配只使用域名或IP地址的URL,如‘127.0.0.1:8000’,  第二个参数“views.hello”设置了URL匹配时调用的视图函数,  第三参数“name=hello”将URL模式的名称设置为“hello”
(2)path('admin/', admin.site.urls),第一个参数"admin/",用于匹配"域名或IP地址/admin/"格式的URL,如‘127.0.0.1:8000/admin’

path()和re_path() 函数的原型如下


                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值