3.re_path和reverse

 

re_path筆記:

  1. re_path和path的做用都是同樣的.只不過re_path是在寫url的時候能夠用正則表達式,功能更增強大.
  2. 寫正則表達式都推薦使用原生字符串.也就是以r開頭的字符串.
  3. 在正則表達式中定義變量,須要使用圓括號括起來,這個參數是有名字的,那麼須要使用?P<參數的名字>.而後在後面添加正則表達式的規則.示例代碼以下:
    from django.urls import re_path
        from . import views
    
        urlpatterns = [
            # r"":表明的是原生字符串(raw)
            re_path(r'^$',views.article),
            # /article/list/<year>/
            re_path(r"^list/(?P<year>\d{4})/$",views.article_list),
            re_path(r"^list/(?P<month>\d{2})/$",views.article_list_month)
        ]
  4. 若是不是特別要求,直接使用path就夠了,省的把代碼搞的很麻煩(由於正則表達式實際上是很是晦澀的,特別是一些比較複雜的正則表達式,今天寫的明天可能就不記得了).除非是url中確實是須要使用正則表達式來解決才使用re_path

reverse筆記

  1. 若是在反轉url的時候,須要添加參數,那麼能夠傳遞kwargs參數到reverse函數中,示例代碼以下:
    current_url = reverse("detail",kwargs={"detail_id":5})
  2. 若是想要添加查詢字符串的參數,則必須手動的進行拼接,示例代碼以下:
    current_url - reverse("detail") + '?next=/'
相關文章
相關標籤/搜索