04. Django基础:路由配置

一、path函数

  • 导入:from django.urls import path

  • 语法:path(route,views,name=Node)

  • 参数:

    • route:字符串类型,匹配的请求路径
    • views:指定路径所对应的视图处理函数的名称
    • name:为地址起别名,在模板中地址反向解析时使用
  • 练习:建立一个小网站

    • 输入网址:http://127.0.0.1:8000,在网页中输出:这是我的首页
    • 输入网址:http://127.0.0.1:8000/page/1,在网页中输出:这是编号为1的网页
    • 输入网址:http://127.0.0.1:8000/page/2,在网页中输出:这是编号为2的网页

    代码:在这里插入图片描述

    在这里插入图片描述

  • 思考:建立上百个网页该怎么办?

    例如:http://127.0.0.1:8000/page/3

    ​ http://127.0.0.1:8000/page/4

    ​ ···

    ​ http://127.0.0.1:8000/page/100

二、path转换器

针对上面的问题,可以使用path转换器

  • 解决:path转换器

    • 语法:<转换器类型:自定义名>
    • 作用:若转换器类型匹配到对应类型的数据,则将数据按照关键字传参的方式传递给视图函数
    • 例子:path('page/\<int:page>',views.xxx)
  • path转换器类型

    转换器类型作用样例
    str匹配除了’/'之外的非空字符串"v1/user/<str:username>":匹配va/users/guoxiaonao
    int匹配0或者任意正整数。返回一个int"page/<int:page>":匹配/page/100
    slug匹配任意由ASCII字母或数字以及连字符和下划线组成的短标签"detail/<slug:sl>":匹配/detail/this-is-django
    path匹配非空字段,包括路径分隔符’/’"v1/user/<path:ph>":匹配v1/goods/a/b/c
  • 测试:

    在这里插入图片描述

    在这里插入图片描述

  • 练习:小计算器

    定义一个路由的格式为:http://127.0.0.1:8000/整数/操作字符串[add/sub/mul]/整数

    • 从路由中提取数据,做相应的操作后返回给浏览器

    • 效果如下:

      输入:http://127.0.0.1:8000/100/add/200

      页面显示结果:300

    • 代码:在这里插入图片描述

    • 结果:在这里插入图片描述

三、re_path()函数

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

  • 语法:

    • re_path(req, view, name=xxx)
    • 正则表达式为命名分组模式(?P<name>pattern);匹配提取参数后用关键字传参方式传递给视图函数
  • 样例:

    # 可匹配: http://127.0.0.1:8000/20/mul/40

    # 不可匹配: http://127.0.0.1:8000/200/mul/400

    urlpatterns=[
    	path('admin/',admin.site.urls),
    	re_path(r'^(?P<x>\d{1,2})/(?P<op>\w+)/(?P<y>\d{1,2})$',views.cal_view),
    ]
    
  • 代码:在这里插入图片描述

  • 结果:在这里插入图片描述

  • 练习:

    访问地址:

    http://127.0.0.1:8000/birthday/四位数字/一到两位数字/一到两位数字

    http://127.0.0.1:8000/birthday/一到两位数字/一到两位数字/四位数字

    最终输出:

    生日为:xxxx年xx月xx日

    效果样例:

    http://127.0.0.1:8000/birthday/2015/12/11

    显示为:生日为:2015年12月11日

    http://127.0.0.1:8000/birthday/2/28/2008

    显示为:生日为:2008年2月28日

    代码:在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KaiSarH

如果觉得文章不错,可以支持下~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值