目标

理解以下内容:

  • 转换器的关系字典
  • 注册自定义的转换器
  • 转换器的捕捉验证返回流程
  • 域名反解时转换器的处理流程

需求

django-自定义转换器-实操案例

实现捕捉分类的功能

路由,重点在正则

django-自定义转换器-实操案例

视图

django-自定义转换器-实操案例

捕捉效果

django-自定义转换器-实操案例

django-自定义转换器-实操案例

django-自定义转换器-实操案例

了解转换器的原理

转换器的核心就是正则表害式

一,路径中捉到的内容会交给转换器

django-自定义转换器-实操案例

如果没有写转换器
默认用的是str转换器

二,转换器类的处理

1,先验证一下捕捉的内容是不是可以匹配成功
如果不成功,就会报错

2,被捕捉的内容,会经过to_python方法处理
然后返回给视图函数的形参

django-自定义转换器-实操案例

django-自定义转换器-实操案例

3,如果是通过reverse进行反转
例如
reverse(别名, kwargs={key,val})

这个val会被别名所对应的路径中的转换器得到
django-自定义转换器-实操案例
然后会被 to_url 得到这个参数
django-自定义转换器-实操案例
to_url方法处理后的结果,会回填到路径里

看图理解转换器流程

图一,路径捕捉参数,传递给视图中
django-自定义转换器-实操案例

图二,别名反转

django-自定义转换器-实操案例

转换器模块中有内容

django-自定义转换器-实操案例

DEFAULT_CONVERTERS

转换器关系字典

这是一个字典
键,转换器拘字
值,转换器的处理类对象

register_converter

注册新转换器

如果自定义了转换器
可以通过这个方法把新转换器添加进去

自定义转换器开始

目标

django-自定义转换器-实操案例

步骤:

一,写一个转换器的类

django-自定义转换器-实操案例

二,注册这个转换器

django-自定义转换器-实操案例

三,使用这个转换器

django-自定义转换器-实操案例

四,看效果

路径上写了科目
通过转换器来捉
并且返回为字典的形态(to_python方法的处理结果)

django-自定义转换器-实操案例

django-自定义转换器-实操案例

相关文章: