- 在进行url反转的时候传递参数
如果在反转url的时候,需要添加参数,那么可以传递“kwargs”参数到“reverse函数中”,
在进行访问首页的时候,如果没有传递进来用户名,就返回文章列表页,在以上视图函数中可以进行这样的修改。urls.py文件中不用改动。示例代码如下:
def index(request):
username = request.GET.get("username")
if username:
return HttpResponse("首页")
else:
"""
此时,如果不加上kwargs参数的话,反转得到的url就会缺少传输的参数
而kwargs:keywords arguments,关键字参数。就是XXX = xxx的形式,可以用字典表示。
"""
article_url = reverse("detail",kwargs={'article_id':3})
return redirect(article_url)
- reverse()函数进行反转的时候,添加查询字符串的参数。
如果想要添加查询字符串的参数,则必须进行手动的进行拼接,示例代码如下:
def index(request):
username = request.GET.get("username")
if username:
return HttpResponse("首页")
else:
"""
在django中,reverse()函数,并没有识别传来的请求时get请求,还是post请求
通过手动的添加字符串,使url进行拼接
其中,?next 表示的接下来要跳转的页面
"""
login_url = reverse("login") + "?next=/"
return redirect(login_url)