021:自定义path(或url)转换器
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)转换器相关推荐
- Django从理论到实战(part15)--自定义path转换器
学习笔记,仅供参考 参考自:Django打造大型企业官网: 本系列Blog以应用为主,理论基础部分我在后端专栏的Django系列博客已经写过了,如果有些需要补充的知识点,我会在这个系列中,尽量详细的写 ...
- jqGrid细节备注—jqGrid中自定义格式,URL格式
jqGrid中自定义格式,URL格式 当官方自带的showlink用起来不是十分顺手,因此可以考虑自己定义url格式 自定义格式其实很简单,在formatter:处填写函数名 比如formatter: ...
- Flak 自定义URL转换器
本文转载:https://www.cnblogs.com/captainmeng/p/8572838.html URL转换可以使用户访问多个场景,继承了一个BaseConverter类.URL有些不太 ...
- 用自定义IHttpModule实现URL重写
在本人拙作<ASP.NET夜话>第十二章中探讨过ASP.NET底层运行机制的问题,在该书中本人也讲到过了解一些ASP.NET的低层机制对于我们灵活控制ASP.NET有很大帮助,在该书中本人 ...
- linux增加自定义path和manpath
linux安装软件到自定义路径时,新安装的命令需要带上路径才可以执行,不能像系统自带命令那样可以直接使用. 这个时候可以通过修改环境变量PATH和MANPATH,来实现像系统命令一样使用新安装的命令并 ...
- php如何定义url,使用自定义函数作为URL规则
在创建定义URL规则的时候,毕竟系统自带的通配符变量有限,如果发现通配符变量没法满足你的实际需求 我们可以使用自定义函数来做,当然需要有PHP基础的人才行~ 比如我在模块内容的url中想把标题titl ...
- 通过自定义Module实现URl重写和登陆验证
首先我们新建一个类库命名为Module,然后新建一个类命名为UrlRewriteModule 并且实现IHttpHandler接口代码如下 public class UrlRewriteModule: ...
- 微信自定义分享指定url
记笔记,备后面自己查询! 这两天写的H5页面一个页面包含多个不同的链接模块如下图这种,每种分享的链接都不是当前链接,指定自定义的链接. 微信官方开发者文档:https://mp.weixin.qq.c ...
- vue微信分享给朋友,朋友圈自定义网页链接url改变了
以下是微信分享给朋友,朋友圈的部分代码 wx.ready(function(){// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客 ...
最新文章
- java导入包大全_eclipse快速导入jar包的相关操作步骤
- 国外AI教学网红网站
- 【Android 逆向】Android 权限 ( 查看内存信息 | 查看 CPU 信息 | 查看电池信息 | 查看账户信息 | 查看 Activity 信息 | 查看 Package 信息 )
- 【Android 逆向】Android 系统文件分析 ( /proc/ 目录文件分析 | 记录系统和进程信息 | version 内核版本信息文件 )
- 感知机模型[神经网络入门]
- java中方法的具体化_我为什么要关心Java没有具体化的泛型?
- Java 8 Friday:大多数内部DSL已过时
- python内部函数和比外部函数快_Python:如何允许“内部函数”更改多个“外部函数”中的非局部变量...
- http://sourceforge.net/projects/rtspdirectshow/
- 专访OPPO Find X5产品经理:深耕自研芯片 以最高标准打造极致旗舰体验
- python文件操作:文件指针移动、修改
- 颜值与特色并存!各大高校“中秋限定款”月饼刷屏,你酸了吗?
- Yagmail通过QQ邮箱发送邮件实例
- 5.16 图层合并的几种方式 [原创Ps教程]
- php nofollow,php如何实现统一给外部链接添加nofollow值?
- 手把手带你撸一个校园APP(七):校园文化模块(社团活动表白墙图说校园)
- PyCharm学生认证以及切换账号
- 启明欣欣STM32开发板 --- 运行LWIP (无RTOS)
- java学习视频网课收集
- 打印机相关的c语言程序,VC下打印机的使用
热门文章
- 艰难的原创——谈互联网创业
- 倒计时的CountDownTimer
- 生成一个随机100内小数,转换为保留两位小数的字符串,不考虑四舍五入的问题。
- Flutter入门:如何只关闭自身页面
- 【.NET正则表达式库】v1.0上线
- 21.Longest Palindromic Substring(最长回文子串)
- 【泰语歌】กลับคำสาหล่า 歌手:Mike Piromporn
- TextKit简单示例
- PHP写的一个轻量级的DI容器类(转)
- c#中 cmd.parameters.add() 方法的问题