url逆向解析的四种方法

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
]


发布了35 篇原创文章 · 获赞 0 · 访问量 425

猜你喜欢

转载自blog.csdn.net/mengzh620/article/details/103094683