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中;

转载于:https://www.cnblogs.com/zheng-weimin/p/10162166.html

021:自定义path(或url)转换器相关推荐

  1. Django从理论到实战(part15)--自定义path转换器

    学习笔记,仅供参考 参考自:Django打造大型企业官网: 本系列Blog以应用为主,理论基础部分我在后端专栏的Django系列博客已经写过了,如果有些需要补充的知识点,我会在这个系列中,尽量详细的写 ...

  2. jqGrid细节备注—jqGrid中自定义格式,URL格式

    jqGrid中自定义格式,URL格式 当官方自带的showlink用起来不是十分顺手,因此可以考虑自己定义url格式 自定义格式其实很简单,在formatter:处填写函数名 比如formatter: ...

  3. Flak 自定义URL转换器

    本文转载:https://www.cnblogs.com/captainmeng/p/8572838.html URL转换可以使用户访问多个场景,继承了一个BaseConverter类.URL有些不太 ...

  4. 用自定义IHttpModule实现URL重写

    在本人拙作<ASP.NET夜话>第十二章中探讨过ASP.NET底层运行机制的问题,在该书中本人也讲到过了解一些ASP.NET的低层机制对于我们灵活控制ASP.NET有很大帮助,在该书中本人 ...

  5. linux增加自定义path和manpath

    linux安装软件到自定义路径时,新安装的命令需要带上路径才可以执行,不能像系统自带命令那样可以直接使用. 这个时候可以通过修改环境变量PATH和MANPATH,来实现像系统命令一样使用新安装的命令并 ...

  6. php如何定义url,使用自定义函数作为URL规则

    在创建定义URL规则的时候,毕竟系统自带的通配符变量有限,如果发现通配符变量没法满足你的实际需求 我们可以使用自定义函数来做,当然需要有PHP基础的人才行~ 比如我在模块内容的url中想把标题titl ...

  7. 通过自定义Module实现URl重写和登陆验证

    首先我们新建一个类库命名为Module,然后新建一个类命名为UrlRewriteModule 并且实现IHttpHandler接口代码如下 public class UrlRewriteModule: ...

  8. 微信自定义分享指定url

    记笔记,备后面自己查询! 这两天写的H5页面一个页面包含多个不同的链接模块如下图这种,每种分享的链接都不是当前链接,指定自定义的链接. 微信官方开发者文档:https://mp.weixin.qq.c ...

  9. vue微信分享给朋友,朋友圈自定义网页链接url改变了

    以下是微信分享给朋友,朋友圈的部分代码 wx.ready(function(){// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客 ...

最新文章

  1. java导入包大全_eclipse快速导入jar包的相关操作步骤
  2. 国外AI教学网红网站
  3. 【Android 逆向】Android 权限 ( 查看内存信息 | 查看 CPU 信息 | 查看电池信息 | 查看账户信息 | 查看 Activity 信息 | 查看 Package 信息 )
  4. 【Android 逆向】Android 系统文件分析 ( /proc/ 目录文件分析 | 记录系统和进程信息 | version 内核版本信息文件 )
  5. 感知机模型[神经网络入门]
  6. java中方法的具体化_我为什么要关心Java没有具体化的泛型?
  7. Java 8 Friday:大多数内部DSL已过时
  8. python内部函数和比外部函数快_Python:如何允许“内部函数”更改多个“外部函数”中的非局部变量...
  9. http://sourceforge.net/projects/rtspdirectshow/
  10. 专访OPPO Find X5产品经理:深耕自研芯片 以最高标准打造极致旗舰体验
  11. python文件操作:文件指针移动、修改
  12. 颜值与特色并存!各大高校“中秋限定款”月饼刷屏,你酸了吗?
  13. Yagmail通过QQ邮箱发送邮件实例
  14. 5.16 图层合并的几种方式 [原创Ps教程]
  15. php nofollow,php如何实现统一给外部链接添加nofollow值?
  16. 手把手带你撸一个校园APP(七):校园文化模块(社团活动表白墙图说校园)
  17. PyCharm学生认证以及切换账号
  18. 启明欣欣STM32开发板 --- 运行LWIP (无RTOS)
  19. java学习视频网课收集
  20. 打印机相关的c语言程序,VC下打印机的使用

热门文章

  1. 艰难的原创——谈互联网创业
  2. 倒计时的CountDownTimer
  3. 生成一个随机100内小数,转换为保留两位小数的字符串,不考虑四舍五入的问题。
  4. Flutter入门:如何只关闭自身页面
  5. 【.NET正则表达式库】v1.0上线
  6. 21.Longest Palindromic Substring(最长回文子串)
  7. 【泰语歌】กลับคำสาหล่า 歌手:Mike Piromporn
  8. TextKit简单示例
  9. PHP写的一个轻量级的DI容器类(转)
  10. c#中 cmd.parameters.add() 方法的问题