url逆向解析有四种方法:
def url_reverse(request):
return render(request,'booktest/url_reverse.html') 先定义一个url页面
def show_args(request,a,b):
return HttpResponse(a+':'+b) # 第二种定义位置参数
def show_kwargs(request,c,d):
return HttpResponse(c+":"+d) # 第三种定义关键字参数视图
from django.urls import reverse
def test_redirect(request):
#return redirect('/index')
# url = reverse('booktest:index') # 第四种方法 用视图url逆解析index 进入页面直接跳转index
# url = reverse('booktest:show_args', args=(1,2)) #跳转位置参数
url = reverse('booktest:show_kwargs',kwargs={'c':3,'d':4}) # 跳转关键字参数
return redirect(url)
from django.contrib import admin
from django.urls import path
from django.conf.urls import include,url
urlpatterns = [
path('admin/', admin.site.urls),
url(r'^',include('booktest.urls',namespace='booktest')), #在这里加上namespace
]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>url反向解析</title>
</head>
<body>
<h1>url反向解析index链接:</h1> <br>
<a href="{% url 'booktest:index' %}">首页</a> 第一种方法
/show_args/1/2:<br>
<a href="/show_args/1/2">/show_args/1/2</a> # 写死了
动态产生/show_args/1/2:<br>
<a href="{% url 'booktest:show_args' 1 2 %}">/show_args</a> 第二种方法 捕获位置参数 要传递2个参数
/show_kwargs/3/4: <br/>
动态产生:<br/>
<a href="{% url 'booktest:show_kwargs' c=3 d=4 %}">/show_kwargs</a> # 第三种方法关键词参数
</body>
</html>
app_name = 'booktest' #注意这里要加这个
urlpatterns = [
url(r'^index1$',views.index,name='index'), 修改页面地址也能找到原来的首页
url(r'^show_args/(\d+)/(\d+)', views.show_args,name='show_args'),# 捕获位置参数
需要捕获两个参数(\d+)/(\d+)
url(r'^show_kwargs/(?P<c>\d+)(?P<d>\d+)$',views.show_kwargs,name='show_kwargs'), #关键字参数
把c和d代入
url(r'^test_redirect$',views.test_redirect), # 用视图url逆解析index
]