Django测试开发-8-urls.py详细配置规则

一、url配置规则:path,re_path,url支持的不同

"""
1.path:只能匹配绝对路径地址,不支持正则匹配

2.re_path:支持正则匹配,Django1.x经常使用

3.url:支持正则匹配,实际上就是return re_path Django2.x经常使用


"""

二、通过url获取参数

如下url:

http://127.0.0.1:8000/vote/page=1

urls.py

urlpatterns = [

   
    url(r'^page=(d+)$',views.page)
    
]

# 使用正则匹配页码数

views.py

def page(request,num):

    try:
        print(type(num))
# 参数接收到的是str类型,需要转换成对应的int 类型
        num = int(num)
        if num == 1:
            return render(request,"h1.html")
        else :
            return render(request,"h2.html")

    except :
        raise Http404
h1.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>h1</title>
</head>
<body>

    <h1>我是H1页面</h1>

</body>
</html>
h2.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>h2</title>
</head>
<body>
    <h2>我是H2页面</h2>
</body>
</html>

工程下urils.py

urlpatterns = [

    path('vote/',include("vote.urls"))

]

工程下settings.py

# 修改DIRS为 html路径
'DIRS': [BASE_DIR + '/vote/views'],
        

浏览器输入:http://127.0.0.1:8000/vote/page=1

三、页面跳转,从一个页面跳转至另一个页面

页面1=home

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>home</title>
</head>
<body>

<p>{{ year }}--------->{{ month }}</p>

<a href="http://127.0.0.1:8000/vote/mypage">点击跳转至我的页面></a>

</body>
</html>

views.py

def home(request,year,month):

    return render(request,"datetime.html",{"year":year,"month":month})

def my_page(request):

    return HttpResponse("这是我的页面---------->mypage")

urls.py

urlpatterns = [

    
    url(r"^page/(?P<year>[0-9]{4})/(?P<month>[0-1][0-9])",views.home,name="date"),
    url(r"^mypage$",views.my_page)
]

浏览器输入:http://127.0.0.1:8000/vote/page/2018/12

 跳转:

原文地址:https://www.cnblogs.com/chushujin/p/12421957.html