1. 程式人生 > 程式設計 >Django Path轉換器自定義及正則程式碼例項

Django Path轉換器自定義及正則程式碼例項

Django預設Path轉換器

  • str:匹配任何非空字串,但不含斜槓/,如果你沒有專門指定轉換器,那麼這個是預設使用的;
  • int:匹配0和正整數,返回一個int型別
  • slug:可理解為註釋、字尾、附屬等概念,是url拖在最後的一部分解釋性字元。該轉換器匹配任何ASCII字元以及連線符和下劃線,比如' building-your-1st-django-site‘;
  • uuid:匹配一個uuid格式的物件。為了防止衝突,規定必須使用破折號,所有字母必須小寫,例如'075194d3-6885-417e-a8a8-6c931e272f00‘ 。返回一個UUID物件;
  • path:匹配任何非空字串,重點是可以包含路徑分隔符'/‘。這個轉換器可以幫助你匹配整個url而不是一段一段的url字串

​step1 . 在urls.py 的同級目錄下,建立converters.py

class Year_Converters():
  regex = '\d{4}'
  def to_python(self,value):
    return int(value)

  def to_url(self,value):
    # return ;04d' % value
    return str(value)

step 2 註冊converters 在同級urls,py 檔案

from django.urls import path,register_converter
from . import views
from . import converters

 #註冊轉換器
 register_converter(converters.Year_Converters,'year')
 urlpatterns = [
  path('show1/<year:arg>',views.show1),]

正則 在urls,py 檔案中,注意引數需要加(),這裡的引數是元組

from django.urls import re_path
urlpatterns = [
  re_path('article/(\d+)/',views.index),]

正則關鍵字

re_path(r'^show3/(?P<id>\d{4})/',views.show3)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。