濮阳杆衣贸易有限公司

主頁 > 知識庫 > Django零基礎入門之路由path和re_path詳解

Django零基礎入門之路由path和re_path詳解

熱門標簽:怎么辦理400客服電話 B52系統(tǒng)電梯外呼顯示E7 銀川電話機器人電話 沈陽防封電銷電話卡 地圖標注多個 鶴壁手機自動外呼系統(tǒng)違法嗎 企業(yè)微信地圖標注 高德地圖標注收入咋樣 萊蕪電信外呼系統(tǒng)

假設現(xiàn)在有個需求:
  需要通過URL進行參數(shù)傳遞,我們該怎么做呢?
    其中有個方法就是本文要講的內(nèi)容——path和進階版的re_path。

urls.py文件中的path和re_path

1.path的基本規(guī)則:

path('test/xx>/',views.test)

第一個參數(shù)——test/xx>/:使用尖括號(>)從url中捕獲值。包含一個轉化器類型(converter type)。沒有轉化器,將匹配任何字符串,當然也包括了/字符。

第二個參數(shù)——views.test:當前面的url匹配成功后,就會調(diào)用后面的視圖函數(shù)。

但是有個問題就是使用尖括號從url中捕獲的值默認都是str類型,如果我們需要強制要求其為別的類型(比如:int型)該怎么辦呢?

這就用到了轉換器!??!

2.默認支持的轉換器有:

str:匹配除了路徑分隔符(/)之外的非空字符串,這是默認的形式str:xx>int:匹配正整數(shù),包含0。slug:匹配字母、數(shù)字以及橫杠、下劃線組成的字符串。uuid:匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00。(這是唯一的?。﹑ath:匹配任何非空字符串,包含了路徑分隔符 轉換器的作用:默認是str轉換器:所以如果不設置轉換器,那么接收到的一切值都是str字符串格式,如果要改變這個參數(shù)類型就使用到了轉換器!

需要注意的是:path中設置的參數(shù)名需要和視圖函數(shù)中調(diào)用的參數(shù)名一致?。?!

一般情況下,使用path即可匹配我們想要的url中的參數(shù)。但是,如果要匹配的過于復雜,使用path中的轉換器無法解決的時候,就要使用到re_path(實則是使用正則匹配!)

3.re_path正則匹配:

如果不做任何限制,瀏覽器中輸入的ULR的地址參數(shù)可以任意多,只要包括規(guī)定的路徑即可成功匹配!
——比如:re_path('hello',views.test5),輸入路徑:127.0.0.1:8000/aaahelloaaaa都可成功匹配哦!

如果想限制為何path一樣的效果——URL中的路徑必須一模一樣,否則匹配不到,則需要使用正則語法:
——比如:re_path('^hello/$',views.test5),就只有輸入路徑127.0.0.1:8000/hello/才可成功匹配!

Django中實戰(zhàn)使用path和re_path

1.urls.py文件:

"""dj_test URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/2.1/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path,re_path                    #導入re_path,使用正則
from . import views

urlpatterns = [     #主路由
    path('admin/', admin.site.urls),
    path('test/', views.test),    #路徑  關聯(lián)的視圖

    path('test2/name>/int:age>/', views.test2),       #變量默認接收的是字符串形式    改變格式是通過轉換器  int:age>規(guī)定所接收的類型為int型


    re_path('^test3/(?Pbb>[0-9]+)',views.test3)	  # 注意這個格式:test3是路徑固定參數(shù), bb是可以接受路徑中test3/后面參數(shù)的參數(shù)(任意0-9的數(shù)字)!
]

2.views.py視圖函數(shù)文件:

from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.
#視圖操作

def test(request):   #函數(shù)視圖
    return HttpResponse("這里是帥哥")

#url傳參(url參數(shù))
def test2(request,name,age):   #函數(shù)視圖
    return HttpResponse("我叫%s,今年%s歲"%(name,age))

def test3(request,bb):   #函數(shù)視圖
    return HttpResponse("哈哈哈")

3.效果:

到此這篇關于Django零基礎入門之路由path和re_path詳解的文章就介紹到這了,更多相關Django path re_path內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 詳解解Django 多對多表關系的三種創(chuàng)建方式
  • 教你pycharm運行Django第一個項目
  • Django實現(xiàn)靜態(tài)文件緩存到云服務的操作方法
  • Django動態(tài)展示Pyecharts圖表數(shù)據(jù)的幾種方法
  • Django將項目移動到新環(huán)境的操作步驟
  • Django零基礎入門之模板變量詳解

標簽:三亞 湘西 葫蘆島 烏魯木齊 銀川 呼倫貝爾 呼倫貝爾 安慶

巨人網(wǎng)絡通訊聲明:本文標題《Django零基礎入門之路由path和re_path詳解》,本文關鍵詞  Django,零,基礎,入門,之,路由,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Django零基礎入門之路由path和re_path詳解》相關的同類信息!
  • 本頁收集關于Django零基礎入門之路由path和re_path詳解的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    基隆市| 蓝山县| 波密县| 昌吉市| 合水县| 阿瓦提县| 景宁| 阿克陶县| 永靖县| 娄烦县| 修文县| 龙川县| 富裕县| 和田市| 开封县| 富宁县| 丽水市| 衡南县| 陆良县| 黄大仙区| 陵川县| 进贤县| 鹰潭市| 宾阳县| 巧家县| 日喀则市| 天等县| 房产| 甘洛县| 东安县| 宁都县| 玉龙| 北碚区| 宜丰县| 马公市| 临沭县| 弥勒县| 西安市| 新蔡县| 开封市| 嘉鱼县|