django之url路径

方式一:path

语法:<<转换器类型:自定义>>

作用:若转换器类型匹配到对应类型的数据,则将数据按照关键字传参的方式传递给视图函数

类型:

  • str: 匹配除了"/"之外的非空字符串。 /test/zvx
  • int: 匹配0或任何整数。 /test/100
  • slug: 匹配任意由ASCII字母或数字以及连字符和下划线组成的短标签 例:"detail/<slug:sl>" 匹配:/detail/this-is-django /test/100 /test/zvx /text/100grade
  • path: 匹配非空字段,包括路径分隔符"/" 例:"v1/goods/<path:ph>" 匹配: /v1/goods/a/b/c

例子:path("page/int:page",views.xxx)

1)str

复制代码
url配置
path('test/<str:number>/',test)
view 代码
def test(request,number):
    print(number)
    return HttpResponse(number)
  1. int

    url配置
    path('test/int:number/',test)
    view 代码
    def test(request,number):
    print(number)
    return HttpResponse(number)

3)slug

复制代码
url配置
path('test/<slug:number>/',test)
view 代码
def test(request,number):
    print(number)
    return HttpResponse(number)

4)path

复制代码
url配置
path('test/<path:number>/',test)
view 代码
def test(request,number):
    print(number)
    return HttpResponse(number)
复制代码
url配置
path('test/<path:number>',test)
view 代码
def test(request,number):
    print(number)
    return HttpResponse(number)
复制代码
url配置
path('child/<str:eid>/<path:oid>/',child),
view代码
def child(request, eid, oid):
    print('eid', eid)
    print('oid', oid)
    return HttpResponse('eid is '+ eid + ' and oid is '+ oid)
复制代码
url配置
path('child/<str:eid>/<path:oid>',child),
view代码
def child(request, eid, oid):
    print('eid', eid)
    print('oid', oid)
    return HttpResponse('eid is '+ eid + ' and oid is '+ oid)

注意看,后面至少匹配了/

方式二:re_path

在url的匹配过程中可以使用正则表达式进行精准匹配

语法:re_path(reg,view,name=xxx)正则表达式为命名分组模式(?Ppattern);

.+ 表示至少1个值。.* 表示可以有可以为空

复制代码
url配置
url(r"^child/(?P<eid>.+)/(?P<oid>.*)/$", child)
view代码
def child(request, eid, oid):
    print('eid', eid)
    print('oid', oid)
    return HttpResponse('eid is '+ eid + ' and oid is '+ oid)
相关推荐
ylfhpy35 分钟前
Java面试黄金宝典30
java·数据库·算法·面试·职场和发展
Y1nhl38 分钟前
Pyspark学习一:概述
数据库·人工智能·深度学习·学习·spark·pyspark·大数据技术
能来帮帮蒟蒻吗40 分钟前
Go语言学习(15)结构体标签与反射机制
开发语言·笔记·学习·golang
维度攻城狮3 小时前
实现在Unity3D中仿真汽车,而且还能使用ros2控制
python·unity·docker·汽车·ros2·rviz2
陈皮话梅糖@3 小时前
使用 Provider 和 GetX 实现 Flutter 局部刷新的几个示例
开发语言·javascript·flutter
简简单单做算法3 小时前
基于mediapipe深度学习和限定半径最近邻分类树算法的人体摔倒检测系统python源码
人工智能·python·深度学习·算法·分类·mediapipe·限定半径最近邻分类树
hvinsion4 小时前
基于PyQt5的自动化任务管理软件:高效、智能的任务调度与执行管理
开发语言·python·自动化·自动化任务管理
Aphelios3804 小时前
Java全栈面试宝典:线程机制与Spring IOC容器深度解析
java·开发语言·jvm·学习·rbac
qq_529835354 小时前
装饰器模式:如何用Java打扮一个对象?
java·开发语言·装饰器模式
日暮南城故里4 小时前
Java学习------源码解析之StringBuilder
java·开发语言·学习·源码