python测试开发django-4.获取url参数和name的作用

前言

如打开博客园按时间分类标签页【https://www.cnblogs.com/yoyoketang/archive/2018/10.html】,里面是时间参数是动态的,如果我想获取里面的时间参数2018和10这两个参数,这就涉及到url参数的获取了。

获取url参数

先用path去匹配一个url地址,类似于:archive/2018/10.html,于是取两个参数名称year,month。参数用这种格式

hello.py/views.py视图函数内容

启动服务后,浏览器输入地址:http://127.0.0.1:8000/archive/2018/10.html

正则匹配url

上面的案例虽然可以实现从url上获取参数了,但是会遇到一个问题,年和月可以输入各种数据,如:archive/2018/101.html,很显然不太合理。

如果想让year参数只能是4个数字,month参数只能是2个数字,该怎么做呢?这就需要用到正则匹配了。

?P

参数year

[0-9] 匹配0-9的数字

匹配4个数字

匹配1-2个数字

r 是raw原型,不转义

^ 匹配开始

$ 匹配结束

hello.py/views.py视图函数内容

启动服务后,浏览器输入地址:

(month输入一位数字也可以如:)

urls.py中定义name的作用

如果现在有一个home.html页面,还有一个demo.html页面,之前两个页面是独立的不相干的,如果现在需要从home页,点个按钮,跳转到demo.html该如何实现?

hello/templates/home.html写入以下内容

hello/templates/demo.html写入以下内容

hello/views.py文件

helloworld/urls.py文件内容

这样就可以实现在home页点

如果在页面里面把url地址写死了:,这样会有个弊端,当多个页面用到这个地址时候,如果后续这个地址变了,那就很难维护了。

为了url地址维护起来方便,可以给它去个唯一的名称,也就是name参数,接下来在url配置里加个name名称。

把hello/templates/home.html跳转的地址改成如下:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181101G22XS600?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券