021:自定义path(或url)转换器
生活随笔
收集整理的這篇文章主要介紹了
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)转换器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 001@多用派发队列,少用同步锁
- 下一篇: django踩坑