針對使用者HttpRequest的請求,回應正確的Views function給使用者。
透過urlpatterns變數
來進行pattern跟views function的對應。
基本概念請先讀 Python URL and Views (一)透過RUL傳送某些參數給views
有時候我們必須從前端取得一些使用的參數,
這個時候,可以透過URL接收到的參數跟pattern,
還呼叫對應的Views Function。
一、RUL數字型態參數
這裡表示當URL如果符合,就呼叫views的test_fun方法。
Views
在前面說過,只要是接收HttpRequest,views被呼叫的Function第一個參數都必須是Request。
因為又接收URL的其他參數,
所以Function必須要在接收,從URL傳來的參數。
值得注意的是,傳送給Views的型態為String
因此如果要做運算,記得要把它轉成int。
二、RUL字串型態參數
Views
當接收year參數時候,Views的參數接受,必須跟RUL設定的Keyword參數一致。
可傳送給Views的參數可以有兩種類型
(1) 用小括號將參數包起來的數字型態 (\d{1,2})
(2) 使用Keyword來接收字串型態 (?P<year>)
一、RUL數字型態參數
urlpatterns = patterns('',
url(r'^test/(\d{4})/$', views.test_fun),
)
- \d : 為後面參數是數字型態。
- {條件} : 數字型態接收的條件。{4}代表四位數。
- (\d{+}) : 加號(+)表示不論是幾位數、無限次。
這裡表示當URL如果符合,就呼叫views的test_fun方法。
Views
在前面說過,只要是接收HttpRequest,views被呼叫的Function第一個參數都必須是Request。
因為又接收URL的其他參數,
所以Function必須要在接收,從URL傳來的參數。
def test_fun (request , num):
pass;
這個num參數將會接受從URL傳來的(\d{4})的數字。值得注意的是,傳送給Views的型態為String
因此如果要做運算,記得要把它轉成int。
二、RUL字串型態參數
urlpatterns = patterns('',
url(r'^test/(?P<year>\d{4})/$', views.test_fun),
)
- ?P<參數Keyword> : Keyword為View和Template傳送參數的判斷
- \d{4}:代表這個Keyword是四位數的數字。
- [A-Z] : 代表大寫A到Z的任意字母。
- \w+ : 代表任意文字或數字出現不限次數。
- 其他可以參考python的正則表達。
Views
當接收year參數時候,Views的參數接受,必須跟RUL設定的Keyword參數一致。
def test_fun (request , year=2014):
pass;
這裡year=2014表示預設值為2014,當接受URL傳送的參數後,year會顯示從URL傳送來的數字。
沒有留言:
張貼留言