久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

python測試開發(fā)django-4.獲取url參數(shù)和name的作用

 上海悠悠 2021-05-27

前言

如打開博客園按時間分類標(biāo)簽頁【https://www.cnblogs.com/yoyoketang/archive/2018/10.html】,里面是時間參數(shù)是動態(tài)的,,如果我想獲取里面的時間參數(shù)2018和10這兩個參數(shù),,這就涉及到url參數(shù)的獲取了,。

獲取url參數(shù)

先用path去匹配一個url地址,,類似于:archive/2018/10.html,,于是取兩個參數(shù)名稱year,month,。參數(shù)用<name>這種格式

from django.conf.urls import url from django.urls import re_path, path from hello import views urlpatterns = [    # 匹配 archive/2018/10.html    path("archive/<year>/<month>.html", views.home), ]

hello.py/views.py視圖函數(shù)內(nèi)容

from django.shortcuts import render from django.http import HttpResponse, Http404 # Create your views here. def home(request, year="2018", month="01"):    return HttpResponse("獲取當(dāng)前頁面home時間標(biāo)簽:%s年/%s月" %(year, month))

啟動服務(wù)后,,瀏覽器輸入地址:http://127.0.0.1:8000/archive/2018/10.html

正則匹配url

上面的案例雖然可以實(shí)現(xiàn)從url上獲取參數(shù)了,,但是會遇到一個問題,年和月可以輸入各種數(shù)據(jù),,如:archive/2018/101.html,,很顯然不太合理。
如果想讓year參數(shù)只能是4個數(shù)字,,month參數(shù)只能是2個數(shù)字,,該怎么做呢?這就需要用到正則匹配了,。

  • ?P

    參數(shù)year
  • [0-9] 匹配0-9的數(shù)字

  • {4} 匹配4個數(shù)字

  • {1,2} 匹配1-2個數(shù)字

  • r 是raw原型,,不轉(zhuǎn)義

  • ^ 匹配開始

  • $ 匹配結(jié)束

from django.conf.urls import url from django.urls import re_path, path from hello import views urlpatterns = [    # 匹配 archive/2018/10.html    path("archive/<year>/<month>.html", views.home),    url(r'^archive1/(?P<year>[0-9]{4})/(?P<month>[0-9]{1,2}).html$', views.home1) ]

hello.py/views.py視圖函數(shù)內(nèi)容

from django.shortcuts import render from django.http import HttpResponse, Http404 # Create your views here. def home(request, year="2018", month="01"):    return HttpResponse("獲取當(dāng)前頁面home時間標(biāo)簽:%s年/%s月" %(year, month)) def home1(request, year="2018", month="01"):    return HttpResponse("獲取當(dāng)前頁面home1時間標(biāo)簽:%s年/%s月" %(year, month))

啟動服務(wù)后,瀏覽器輸入地址:http://127.0.0.1:8000/archive1/2018/10.html
(month輸入一位數(shù)字也可以如:http://127.0.0.1:8000/archive1/2018/1.html)

urls.py中定義name的作用

如果現(xiàn)在有一個home.html頁面,,還有一個demo.html頁面,,之前兩個頁面是獨(dú)立的不相干的,如果現(xiàn)在需要從home頁,,點(diǎn)個按鈕,,跳轉(zhuǎn)到demo.html該如何實(shí)現(xiàn),?

hello/templates/home.html寫入以下內(nèi)容

<!DOCTYPE html> <html lang="en"> <head>    <meta charset="UTF-8">    <title>上海-悠悠</title>    <base target="_blank"> </head> <body> <p>歡迎來到django!    <br>    <br>    <a href="demo/">點(diǎn)這里到demo頁</a> </p> </body> </html>

hello/templates/demo.html寫入以下內(nèi)容

<!DOCTYPE html> <html lang="en"> <head>    <meta charset="UTF-8">    <title>demo樣式</title> </head> <body> <p>    <h4> 這是我的博客地址,可以百度搜:上海-悠悠 </h4>    <a target="_blank" >上海-悠悠-博客園</a>    <hr>    <h4> 《python自動化框架pytest》 </h4>    <p>pytest是最強(qiáng)大最好用的python自動化框架,,沒有之一,。本書詳細(xì)講解pytest框架使用方法,fixture功能是pytest的精髓,,書中有詳細(xì)的案例講解,。<br>        另外最后會有項(xiàng)目實(shí)戰(zhàn)代碼,靈活用到selenium自動化項(xiàng)目上,。<br>        pytest交流群874033608    </p>    <a target="_blank" >百度閱讀地址點(diǎn)此</a> </p> </body> </html>

hello/views.py文件

from django.shortcuts import render from django.http import HttpResponse, Http404 # Create your views here. def home(request):    return render(request, 'home.html') def demo(request):    return render(request, 'demo.html')

helloworld/urls.py文件內(nèi)容

from django.conf.urls import url from django.urls import re_path, path from hello import views urlpatterns = [    url('^demo/$', views.demo),    url('^home/', views.home), ]

這樣就可以實(shí)現(xiàn)在home頁點(diǎn)點(diǎn)這里到demo頁

如果在頁面里面把url地址寫死了:<a href="demo/">點(diǎn)這里到demo頁</a>,,這樣會有個弊端,當(dāng)多個頁面用到這個地址時候,,如果后續(xù)這個地址變了,,那就很難維護(hù)了。
為了url地址維護(hù)起來方便,,可以給它去個唯一的名稱,,也就是name參數(shù),接下來在url配置里加個name名稱,。

from django.conf.urls import url from django.urls import re_path, path from hello import views urlpatterns = [    url('^demo/$', views.demo,  name="demo_page"),    url('^home/', views.home,  name="home_page"), ]

把hello/templates/home.html跳轉(zhuǎn)的地址改成如下:

<a href="{% url 'demo_page' %}">跳轉(zhuǎn)到demo頁面</a>

django更多關(guān)于urls學(xué)習(xí)可以參考【https://docs./zh-hans/2.0/topics/http/urls/】

《python3自動化selenium+接口》(包教會)

報(bào)名費(fèi)2000一人(周期2個月)

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多