Django如何实现自定义路由转换器
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍Django如何实现自定义路由转换器,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!django内置的路径转换器源码解析在我们自定义路由转换器之前,我们先查看一下
千家信息网最后更新 2026年11月02日Django如何实现自定义路由转换器django内置的路径转换器源码解析
小案例
这篇文章主要介绍Django如何实现自定义路由转换器,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
django内置的路径转换器源码解析
在我们自定义路由转换器之前,我们先查看一下django内置的那些路由转换器怎么写的,源码路径from django.urls
import convertersclass IntConverter: regex = '[0-9]+' def to_python(self, value): return int(value) def to_url(self, value): return str(value)class StringConverter: regex = '[^/]+' def to_python(self, value): return value def to_url(self, value): return valueclass UUIDConverter: regex = '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}' def to_python(self, value): return uuid.UUID(value) def to_url(self, value): return str(value)class SlugConverter(StringConverter): regex = '[-a-zA-Z0-9_]+'class PathConverter(StringConverter): regex = '.+'DEFAULT_CONVERTERS = { 'int': IntConverter(), 'path': PathConverter(), 'slug': SlugConverter(), 'str': StringConverter(), 'uuid': UUIDConverter(),}REGISTERED_CONVERTERS = {}def register_converter(converter, type_name): REGISTERED_CONVERTERS[type_name] = converter() get_converters.cache_clear()从上面我们可以非常分析的看到,django内置的路径转换器是先定义了一个类,类中定义了一个类属性regex作为正则表达式的值,然后定义了2个方法to_python和to_url,最后定义了一个register_converter函数,将路径转换器注册到django中去
我们这里给他划分为5步:
1.创建一个converters.py,在文件中定义一个类。
2.在类中定义一个属性regex,这个属性是用来保存url转换器规则的正则表达式。
3.实现to_python(self,value)方法,这个方法是将url中的值转换一下,然后传给视图函数的。
4.实现to_url(self,value)方法,这个方法是在做url反转的时候,将传进来的参数转换后拼接成一个正确的url。
5.将定义好的转换器,注册到django中。
小案例
接下来我们自己定义一个转换器,满足4位数字的路径匹配
新建一个converters.py文件,代码如下:
class FourDigitYearConverter: # 定义正则表达式 regex = '[0-9]{4}' def to_python(self, value): return value def to_url(self, value): return 'd' % value在urls.py文件下注册自定义的转换器
from django.urls import path, converters# 注册自定义转换器register_converter(converters.FourDigitYearConverter, 'yyyy') # yyyy是自定义转换器的类型名称urlpatterns = [ path('articles/', views.articles_yyyy),] 以上是"Django如何实现自定义路由转换器"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
转换器
方法
路径
路由
属性
文件
正则
表达式
内容
函数
源码
篇文章
接下来
代码
价值
兴趣
参数
名称
小伙
小伙伴
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
苏州找大状互联网科技有限公司
美国互联网科技巨头监管
互联网科技小贷
新浪科技互联网
顺玮阁互联网科技
润盈互联网科技
互联网科技有限公司 翻译
无锡溥仪互联网科技有限公司
汉立互联网科技有限公司联系电话
宁夏众和广鑫互联网科技有限公司
赶超互联网科技 微信多开
搜狐科技互联网
保险科技服务互联网营销体系
高科技互联网套路
城市宝互联网科技有限公司
南京一网一红互联网科技有限公司
西安有哪些互联网高科技企业
北京互联网科技类企业分布
同城互联网络科技
马化腾互联网科技教学
手磨咖啡
北京互联网科技
科技服务与互联网
互联网科技公司招聘
南山科技园互联网公司有哪些
晓花互联网科技有限公司网址
辽宁互联网新科技
恒生互联网科技指数跳水
江苏苏星互联网科技有限公司
广州三三互联网科技有限公司