- 在進(jìn)行url反轉(zhuǎn)的時(shí)候傳遞參數(shù)
如果在反轉(zhuǎn)url的時(shí)候葫慎,需要添加參數(shù),那么可以傳遞“kwargs”參數(shù)到“reverse函數(shù)中”薇宠,
在進(jìn)行訪問首頁的時(shí)候偷办,如果沒有傳遞進(jìn)來用戶名,就返回文章列表頁澄港,在以上視圖函數(shù)中可以進(jìn)行這樣的修改椒涯。urls.py文件中不用改動(dòng)。示例代碼如下:
def index(request):
username = request.GET.get("username")
if username:
return HttpResponse("首頁")
else:
"""
此時(shí)慢睡,如果不加上kwargs參數(shù)的話逐工,反轉(zhuǎn)得到的url就會(huì)缺少傳輸?shù)膮?shù)
而kwargs:keywords arguments,關(guān)鍵字參數(shù)。就是XXX = xxx的形式漂辐,可以用字典表示泪喊。
"""
article_url = reverse("detail",kwargs={'article_id':3})
return redirect(article_url)
- reverse()函數(shù)進(jìn)行反轉(zhuǎn)的時(shí)候,添加查詢字符串的參數(shù)髓涯。
如果想要添加查詢字符串的參數(shù)袒啼,則必須進(jìn)行手動(dòng)的進(jìn)行拼接,示例代碼如下:
def index(request):
username = request.GET.get("username")
if username:
return HttpResponse("首頁")
else:
"""
在django中纬纪,reverse()函數(shù)蚓再,并沒有識別傳來的請求時(shí)get請求,還是post請求
通過手動(dòng)的添加字符串包各,使url進(jìn)行拼接
其中摘仅,?next 表示的接下來要跳轉(zhuǎn)的頁面
"""
login_url = reverse("login") + "?next=/"
return redirect(login_url)