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. 史上最完整的人工智能书单大全,学习AI的请收藏好
  2. DALL·E这波超进化,画质艺术感双飞升,还学会了无痕P图
  3. b500k电位器引脚接法_可调电位器实物接线图及接线方法详解
  4. 构造器是什么?(Java篇)
  5. C++ STL 容器之 deque简单使用
  6. 车站广播系统采用计算机,公共广播系统
  7. 分享一款在线考试学习系统.net源码
  8. VUE 中使用 Element 时间控件(简单上手)
  9. MyEclipse配置Tomcat7
  10. Oracle导出部分表 par,Oracle使用par文件进行全库导入导出
  11. 浅谈 MySQL 写数据一致性保障机制
  12. java最早的游戏_回忆S60(塞班)年代的JAVA游戏
  13. java获得指定时间的前几天或后几天是哪一天
  14. Python实现的图书分析大屏展示系统(附源码)
  15. 用计算机打出刚好遇见你,【计算机·故事】刚好遇见你 余生都是你
  16. 我的世界网易服务器修改世界,我的世界:1.16改变两个版本更新频率?网易版异常乱封大批账号?...
  17. 穷人家的孩子真的没戏了吗?道翰天琼认知智能机器人api接口平台为您解密-1!
  18. python语言创意绘画-银川童程童美Python少儿编程班价格
  19. java团购系统开发_基于jsp的团购管理系统化-JavaEE实现团购管理系统化 - java项目源码...
  20. Uboot 2017.01 启动流程分析

热门文章

  1. java-01 JAVA三大版本比较JDK、JRE、JVM 的关系
  2. python @classmethod 和 @staticmethod区别,以及类中方法参数cls和self的区别
  3. Mac idea 打不开
  4. IntelliJ IDEA 问题总结之二 —— 快捷键、主题样式、导出jar、sqlite
  5. Oracle 11g R2手动配置EM(转)
  6. [转]js 取得 Unix时间戳(Unix timestamp)
  7. Electron-builder打包安装程序遇到的问题解决方案
  8. 【数据库】oracle数据库----内嵌视图
  9. cadence遇到的问题(持续更新)
  10. 作为一个web开发人员,哪些技术细节是在发布站点前你需要考虑到的