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)
相关推荐
宇卿.2 分钟前
Java键盘输入语句
java·开发语言
Amo Xiang11 分钟前
2024 Python3.10 系统入门+进阶(十五):文件及目录操作
开发语言·python
Microsoft Word15 分钟前
数据库系统原理(第一章 数据库概述)
数据库·oracle
liangbm321 分钟前
数学建模笔记——动态规划
笔记·python·算法·数学建模·动态规划·背包问题·优化问题
friklogff24 分钟前
【C#生态园】提升C#开发效率:深入了解自然语言处理库与工具
开发语言·c#·区块链
华为云开源25 分钟前
openGemini 社区人才培养计划:助力成长,培养新一代云原生数据库人才
数据库·云原生·开源
B站计算机毕业设计超人33 分钟前
计算机毕业设计Python+Flask微博情感分析 微博舆情预测 微博爬虫 微博大数据 舆情分析系统 大数据毕业设计 NLP文本分类 机器学习 深度学习 AI
爬虫·python·深度学习·算法·机器学习·自然语言处理·数据可视化
羊小猪~~37 分钟前
深度学习基础案例5--VGG16人脸识别(体验学习的痛苦与乐趣)
人工智能·python·深度学习·学习·算法·机器学习·cnn
重生之我在20年代敲代码2 小时前
strncpy函数的使用和模拟实现
c语言·开发语言·c++·经验分享·笔记
爱上语文2 小时前
Springboot的三层架构
java·开发语言·spring boot·后端·spring