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
跳转:
当有些人一出生就有的东西,我们要为之奋斗几十年才拥有。但有一样东西,你一辈子都不会有,那就是我们曾经一无所有。