91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Django如何實現正則URL匹配

發布時間:2020-11-16 15:04:59 來源:億速云 閱讀:153 作者:Leah 欄目:開發技術

使用Django如何實現正則URL匹配?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

一、引子

  在day17 作業中,我們查看主機詳細信息的時候,是通過 在url 中拼接,傳參數。urls 中匹配 path("detail/",views.detail)

使用Django如何實現正則URL匹配

這樣url 變成類似 http://127.0.0.1:8000/detail/?nid=2 今天我們來學習,類似http://127.0.0.1:8000/detail-3.html 這樣的URL

據說,以前我們使用的方式 ,在seo 時候算是動態頁面,后面這種方式算靜態頁面。可能在做搜索優化的時候有好處吧。

二、開搞栗子

  忽略掉數據庫,先在 views 新建一個用戶字典

  2.1 動態頁面的栗子

    views 代碼:

info_dic={
  1:{"name":"zhangsan","email":"zhangsan@163.com","age":22},
  2:{"name":"lisi","email":"lisi@163.com","age":27},
  3:{"name":"wangwu","email":"wangwu@163.com","age":29},
  4:{"name":"laoliu","email":"laoliu@163.com","age":30},
  5:{"name":"chenpi","email":"chenpi@163.com","age":32},
}

def index(request):
  return render(request,"index.html",{"info_dic":info_dic})


def detail(request):
  nid=request.GET.get("nid")
  print(nid,type(nid))
  info=info_dic.get(int(nid))
  print(info)
  return render(request,"detail.html",{"info":info})

    urls

使用Django如何實現正則URL匹配

  前端,index.html,

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title></title>
</head>
<body>
  <h2>用戶信息</h2>

  <ul>
    {% for k,v in info_dic.items %}
      <li><a target="_blank" href="/detail/&#63;nid={{ k }}" rel="external nofollow" >{{ v.name }}</a></li>
    {% endfor %}

  </ul>
</body>
</html>

  前端,detail

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title></title>
</head>
<body>
  <h2>用戶詳細信息</h2>

  <ul>
    <li>name:{{ info.name }}</li>
    <li>email:{{ info.email }}</li>
    <li>age:{{ info.age }}</li>
  </ul>
</body>
</html>

  結果:

使用Django如何實現正則URL匹配

使用Django如何實現正則URL匹配

2.2 下面用 正則表達式來 搞URL 匹配,靜態頁面,

  urls

使用Django如何實現正則URL匹配

  views ,

直接在函數中傳參數,nid 形式參數。不像之前需要自己到 reques.method 中去取

使用Django如何實現正則URL匹配

  結果

使用Django如何實現正則URL匹配

上面的栗子中,我們得知參數是通過形參傳遞的,類似定義函數的形參數,

  下面再搞一個栗子驗證

使用Django如何實現正則URL匹配

使用Django如何實現正則URL匹配

使用Django如何實現正則URL匹配

使用Django如何實現正則URL匹配

參數位置變換后 ,獲取的數值也變了

使用Django如何實現正則URL匹配

三、分組傳參

  在上面的栗子中,我們知道如果不分組,那么參數就是類似函數的位置參數,靠天吃飯,

很顯然,這樣不方便我們在實際的使用中去調用。那么使用關鍵字參數呢,在URL 匹配中就需要分組

下面搞栗子,變換nid,uid 位置之后,打印的結果是一樣的。

使用Django如何實現正則URL匹配

位置參數可以在 *arg 中獲取,關鍵字參數可以在 **kwargs 中獲取

使用Django如何實現正則URL匹配

四、總結

路由系統:URL

  • 普通url:re_path('^index/',view.index),re_path('^home/',view.Home.as_view())
  • 順序傳參:re_path(r'^detail-(\d+)-(\d+).html/',views.detail),這個用*args接收
  • 關鍵字傳參:re_path(r'^detail-(&#63;P<nid>\d+)-(&#63;P<uid>\d+).html/',views.detail),這個用**kwargs接收,推薦使用這個

看完上述內容,你們掌握使用Django如何實現正則URL匹配的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汉寿县| 台北县| 肥西县| 沙河市| 铜陵市| 万年县| 东辽县| 凤冈县| 简阳市| 芦溪县| 江阴市| 元氏县| 汉阴县| 永修县| 宕昌县| 双城市| 张家界市| 台江县| 唐山市| 大连市| 英山县| 浦县| 莒南县| 邹城市| 来宾市| 泌阳县| 全椒县| 垣曲县| 屏山县| 莱阳市| 南投县| 丹棱县| 肃宁县| 双峰县| 永吉县| 新津县| 辛集市| 鹤山市| 彩票| 灯塔市| 信宜市|