91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python Django如何獲取URL中的數據

發布時間:2022-03-04 14:17:45 來源:億速云 閱讀:197 作者:小新 欄目:開發技術

小編給大家分享一下Python Django如何獲取URL中的數據,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

    Django獲取URL中的數據

    URL中的參數一般有兩種形式。如下所示:

    1. https://zy010101.blog.csdn.net/article/details/120816954
    2. https://so.csdn.net/so/search?q=Django&t=blog&u=zy010101

    我們將第一種形式稱為“URL路徑參數”;第二種形式稱為“URL關鍵字形式”。下面講述如何在Django中獲取這兩種形式的數據。

    URL路徑參數

    使用path函數
    from django.urls import path
    from . import views
    urlpatterns = [
        path('articles/2003/', views.special_case_2003),
        path('articles/<int:year>/', views.year_archive),
        path('articles/<int:year>/<int:month>/', views.month_archive),
        path('articles/<int:year>/<int:month>/<slug:slug>/', views.article_detail),
    ]

    關于這段URL的解釋說明,直接參考Django官方文檔即可。

    為了防止有時候進不去文檔,我將官方文檔也直接貼在下面:

    Python Django如何獲取URL中的數據

    使用re_path函數

    如果,使用path函數并不能滿足你匹配URL的要求,那么可以使用re_path函數來使用正則表達式來匹配URL路徑中的參數。需要注意在Django中,使用正則表達式來獲取分組中的值的語法是(?P<name>pattern),其中 name 是組名,pattern 是要匹配的模式。

    from django.urls import path, re_path
    from . import views
    urlpatterns = [
        path('articles/2003/', views.special_case_2003),
        re_path(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),
        re_path(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$', views.month_archive),
        re_path(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<slug>[\w-]+)/$', views.article_detail),
    ]

    這段URL配置的說明可以參考使用正則表達式

    同樣,為了防止有時候進不去文檔,我將官方文檔也直接貼在下面:

    Python Django如何獲取URL中的數據

    需要特別注意的是,正則表達式進行匹配之后,捕獲的參數都作為字符串傳遞給視圖函數(視圖類)。

    URL關鍵字形式

    通常,除了在URL路徑中傳遞數據,也可以在URL參數中進行數據傳遞。例如:

    http://www.demo.com/index?keys=123&values=qwe

    這段URL傳遞了參數keys和values,它們的值分別是123,qwe.

    在此之前,先來介紹一下前備條件QueryDict。

    HttpRequest對象的屬性GET、POST都是QueryDict類型的對象

    Django獲取URL關鍵字參數可以通過HttpRequest.GET屬性來獲取。例如:

    def test(request):
        a = request.GET.get("a")
        b = request.GET.get("b")
        c = request.GET.get("c")
        a_all = request.GET.getlist("a")
        res = a+'<br>'+b+'<br>'+c+'<br>'+str(a_all)
        return HttpResponse(res)

    現在使用如下的URL進行請求:

    http://127.0.0.1:8008/test?a=1&a=2&b=3&c=4

    頁面顯示如下所示:

    Python Django如何獲取URL中的數據

    查詢字符串不區分請求方式,即假使客戶端進行POST方式的請求,依然可以通過request.GET獲取請求中的查詢字符串數據。

    看完了這篇文章,相信你對“Python Django如何獲取URL中的數據”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    南丰县| 隆德县| 淳化县| 清徐县| 哈密市| 阿鲁科尔沁旗| SHOW| 广南县| 桐梓县| 县级市| 枝江市| 新密市| 临朐县| 本溪| 崇信县| 徐闻县| 水城县| 云安县| 安达市| 敦化市| 建阳市| 皋兰县| 郎溪县| 彰化市| 当雄县| 顺义区| 固镇县| 汝城县| 通许县| 项城市| 山西省| 海伦市| 武邑县| 沈丘县| 福建省| 平泉县| 太原市| 子洲县| 定州市| 中卫市| 沭阳县|