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=/'
相关文章
相关标签/搜索