Django基础--(命名规则,path方法和自定义path)

在抓取网页模板的时候,很容易出现许多信息无法定位到相关信息的时候,这里就需要将信息进行命名,用到的是正则表达式中的(?P<name>正则表达)

    re_path(r'articles/(?P<y>[0-9]{4})/(?P<m>[0-5]{2})/$',views.year_month),

这里返回的信息是year_month(request,y,m)

在视图当中显示的方法就是

这里需要看下输出的两个值的类型,我们测试一下主要的是第一个四位数,第二个是两位数,很好理解。

打印内容为

 可以知道我们返回的信息为字符类型,所以可以用int转换将这个类型转换成整数就可以做数字运算。

想要解决也很简单,调用path方法就好

path("articles/<int:year>",views.path_year), #path_year(request,2001),无需前导

这里就是匹配在articles后面的内容,前面说过我们抓取的内容如果是数字也是字符类型,但是这里只要选择的是int类型的话,后面抓取出来的信息就是正整数类型,如图。

并打印类型 

可以看到我们输出的类型已经就改成int

正好,以后如果想匹配一些自己想要的内容的时候,我们可以自己自定义一个path路径,具体的方法是

调用两个库,首先在app2里面建立一个文档urlconvert.py,创建一个MonConvert的类属性

from django.urls import register_converter
from app2.urlconvert import MonConvert
#在这制作一个转换器,用于转化想对应的信息。
class MonConvert:

        regex="[0-9]{2}" #规则字符串。 匹配相对应的正则表达式

        def to_python(self, value):  #调用to_python的方法,这两个方法都是要加上去的
            return int(value)  #如果不是用的int(value) 输出的就str类型。

        def to_url(self,value):  #反向解析
            return '%04d' % value

后面要做的就是将这个类属性进行激活处理,

register_converter(MonConvert,"mm")   #把你做好的转化器注册进去
urlpatterns = [
path(r"articles/<mm:month>",views.path_month), 
]
这样就做好一个自定义的path属性,用于判断你想要url内容
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值