(6 URL傳遞引數

2021-09-13 03:40:52 字數 1540 閱讀 6547

一、url對映:

1.為什麼會去urls.py檔案中尋找對映呢?

因為在 "settings.py" 檔案中配置了 "root_urlconf" 為 "urls.py"。所有django會去 "urls.py" 中尋找。

2.在 "urls.py"中我們所有的對映,都應該放在 "urlpatterns" 這個變數中。

3.所有的對映都不是隨便寫的,而是 "path" 函式或者是 "re_path" 函式進行包裝。

二、url傳引數:

1.採用在url中使用變數的方式:在path的第乙個引數中,使用 "《引數名》" 的方式可以傳遞引數。然後在檢視函式中也要寫乙個引數,檢視函式中的引數必須和url中的引數名稱保持一致,不然就找不到這個引數。另外,url中可以傳遞多個引數。

urls.py

path('book/detail//',views.book_detail),
views.py

def book_detail(request,book_id):

text = '你獲取的圖書id是:%s' % book_id

return httpresponse(text)

2.採用查詢字串的方式:在url中,不需要單獨的匹配查詢字串的部分。只需要在檢視函式中使用 "request.get.get('引數名稱')" 的方式來獲取。示例**如下:

def author_detail(request):

author_id = request.get['id']

text = "作者是id是:%s" % author_id

return httpresponse(text)

因為查詢字串使用的是 "get" 請求,所以我們通過 "request.get" 來獲取引數。並且因為"get"是乙個類似於字典的資料型別,所有獲取值跟字典的方式都是一樣的。

url命名:

1.為什麼需要url命名?

因為url是經常變化的。如果在**中寫死可能會經常改**。給url取個名字,以後使用url的時候就使用它的名字進行反轉就可以了,就不需要寫死url了。

2.如何給乙個url指定名稱

在 "path"函式中,傳遞乙個"name"引數就可以指定。示例**如下:

urlpatterns = [

path('',views.index,name = 'index'),

path('login/',views.login,name = 'login')

]

3.應用命名空間

urlpatterns = [

path('',view.index,name = "index"),

path('login/',views.login,name = "login")]

以後我們再反轉的時候就可以使用"應用命名空間:url名稱"的方式進行反轉。示例**如下:

login_url = reverse('front:login')

thinkphp學習筆記6 url模式

入口檔案是應用的唯一入口,因為可以多入口,每個應用可以對應乙個入口檔案,系統會從rul引數中解析當前請求的模組,控制器,操作。thinkphp是區分大小寫的,考慮到linux是區分大小寫的,所以在thinkphp中模組,控制器,模型等都是區分大小寫的,並且使用駝峰命名規則。如果我們直接訪問入口檔案i...

url傳遞中文引數

send.html var key 測試 通常,如果我們直接將中文寫在url中,得到的卻是一堆亂碼 e6 b5 8b e8 af 95 因為這涉及到編碼問題。如果你設定了編碼方式為utf 8,則它會將中文編譯為英文,如果對應的頁面的編碼方式也為utf 8,則就直接顯示編譯後的中文 解決方法 1.en...

js 利用url傳遞引數

原始請求 http localhost 8093 cctest cc mainframes mainright.html?gg 1 alert window.location.pathname 彈出 cctest cc mainframes mainright.html alert window.l...