首页 > Web开发 > 详细

021:自定义path(或url)转换器

时间:2019-12-24 15:05:17      阅读:89      评论:0      收藏:0      [点我收藏+]

1、实现如下需求:用户可以根据articles/list/方式获取文章,其中文章分类是采用如下分类,实例如下:

  • 第一种:获取python分类下的文章:/article/python/
  • 第二种:获取python和django分类下的文章:/article/python+django
  • 第三种:获取python、django和flask分类下的文章:/article/python+django+flask             ……以此类推

 

步骤一:

技术分享图片

步骤二:

技术分享图片

步骤三:

技术分享图片

 2、实现如下需求:

  • 在“文章分类”参数传到视图函数之前要把这些分类分开来存储到列表中,比如:参数是:python+django+flask,那么变化后的结果是[‘python‘,‘django‘,‘flask‘];
  • 在使用reverse反转的时候,限制传递“文章分类“的参数应该是一个列表,并将这个列表变成:python+django+flask(和上面相反的过程);

第一步:

技术分享图片

第二步:

技术分享图片

第三步:

技术分享图片

第四步:

技术分享图片

 

总结一下:自定义 url 转换器按照以下五个步骤来走就可以了:

1. 定义一个类;
2. 在类中定义一个属性 regex ,这个属性是用来保存 url 转换器规则的正则表;
3. 实现 to_python(self,value) 方法,这个方法是将 url 中的值转换一下,然后传给视图函数的;
4. 实现 to_url(self,value) 方法,这个方法是在做 url 反转的时候,将传进来的参数转换后拼接成一个正确的url;
5. 将定义好的转换器,注册到django中;

021:自定义path(或url)转换器

原文:https://www.cnblogs.com/Carlos-Li/p/12091171.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!