1. 程式人生 > >9.12 Django路由

9.12 Django路由

temp 關鍵字 表達式 匹配模式 註意 ear 表達 ons 需求

2018-9-12 12:14:29

路由就是根據具體業務需求寫的!

有的業務多,路由多,然後就需要細化 然後根據需求該!

怎麽方便怎麽來!

越努力,越幸運!

貼上筆記!

路由url根據需要可用修改, 但是寫個別名 name 通過name 反向解析就可以啦

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

day67 2018-05-09

1. 內容回顧
    1. 模板語言(字符串替換)
        1. 母版和繼承
            1. 什麽時候用母版?
                html頁面有重復的代碼,把它們提取出來放到一個單獨的html文件。
                (比如:導航條和左側菜單)
            
2. 子頁面如何使用母版? {% extends base.html %} --> 必須要放在子頁面的第一行 母版裏面定義block(塊),子頁面使用block(塊)去替換母版中同名的塊 2. 組件 1. 什麽時候用組件? 重復的代碼,包裝成一個獨立的小html文件。 2. 如何使用? {% include nav.html %}
3. Django模板語言中關於靜態文件路徑的靈活寫法 1. 利用Django模板語言內置的static方法幫我拼接靜態文件的路徑 {% load static %} <link href="{% static ‘bootstrap/css/bootstrap.min.css‘ %}" rel="stylesheet"> 2. 利用內置的get_static_prefix獲取靜態文件路徑的別名,我們自行拼接路徑 {% load static %}
<link href="{% get_static_prefix %}bootstrap/css/bootstrap.min.css" rel=stylesheet> 3. as語法(一個路徑多次用到,可以使用as保存到一個變量,後面就直接使用變量代替具體路徑) 4. 自定義的simple_tag 比filter高級一點點 它可以接受的參數個數大於2 5. 自定義的inclusion_tag 用來返回一段html代碼(示例:返回ul標簽) 1. 定義階段 在app下面新建templatetags 文件夾(註意是Python包) 新建一個py文件 from django import template # 生成註冊示例,名字必須是register register = template.Library() @register.inclusion_tag("ul.html") def show_ul(num): num = 1 if num < 1 else int(num) data = ["第{:0>3}號技師".format(i) for i in range(1, num+1)] return {"data": data} 2. 調用階段 {% load xx %} {% show_ul 10 %} 2. 今日內容 1. 視圖(接收請求返回響應那部分) 1. CBV(class base view)和FBV(function base view) 2. request對象 1. 之前學過的 1. request.method --> 獲取請求的方法(GET、POST等) 2. request.GET --> 通常用來獲取URL裏面的參數 127.0.0.1:8000/edit_book/?id=1&name=yimi request.GET --> {"id":1, "name":"yimi"} request.GET.get("id") 3. request.POST --> 用來獲取POST提交過來的數據 request.POST.get("book_name") 2. 補充其他常用的: 1. request.path_info --> 獲取用戶請求的路徑(不包含IP和端口和URL參數) 2. request.body 3. response 基礎必備三件套(求學要嚴謹) 1. HttpResponse --> 返回字符串內容 2. render --> 返回一個html頁面 3. redirect --> 返回一個重定向(告訴瀏覽器再去訪問另外的網址) 4. JsonResponse 2. 路由系統(urls.py) http://www.cnblogs.com/liwenzhou/p/8271147.html 1. 正則表達式的模糊匹配 2. 分組匹配 --> 相當於給視圖函數傳遞位置參數 3. 分組命名匹配 --> 相當於給視圖函數傳遞關鍵字參數 (兩個不要混合使用) ---------------------------- 這裏是坎 ------------------------------------ 4. 反向解析URL 本質上就是給url匹配模式起別名,然後用過別名拿到具體的URL路徑 1. 怎麽起別名? 在url匹配模式中,定義name="別名" 2. 如何使用? 1. 在模板語言裏面使用: {% url "別名" %} --> 得到具體的URL路徑 2. 在視圖中如何使用: from django.urls import reverse reverse("別名") --> 得到具體的URL路徑 3. 如何傳參數? 1. 模板語言中: {% url "別名" 2018 "nb" %} 2. 視圖函數中 傳位置參數: reverse("別名", args=(2018, "nb")) 傳關鍵字參數: reverse("別名" kwargs={"year": 2018, "title": "nb"}) 4. namespace 為了防止不同的app下面的url匹配模式有重復的別名 3. 今日作業 1. 把之前圖書管理系統的編輯和刪除功能用url分組匹配的形式修改一下! 2. 把編輯按鈕的鏈接改成反向解析URL的形式

9.12 Django路由