一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Django零基礎入門之路由path和re_path詳解

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

2021-12-29 00:09孤寒者 Python

這篇文章主要介紹了Django零基礎入門之路由path和re_path,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

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

 

urls.py文件中的path和re_path

1.path的基本規則:

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

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

第二個參數――views.test:當前面的url匹配成功后,就會調用后面的視圖函數。

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

這就用到了轉換器!!!

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

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

需要注意的是:path中設置的參數名需要和視圖函數中調用的參數名一致!!!

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

 

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

3.re_path正則匹配:

如果不做任何限制,瀏覽器中輸入的ULR的地址參數可以任意多,只要包括規定的路徑即可成功匹配!
――比如: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中實戰使用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),    #路徑  關聯的視圖

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


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

2.views.py視圖函數文件:

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

# Create your views here.
#視圖操作

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

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

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

3.效果:

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

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

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

原文鏈接:https://gu-han-zhe.blog.csdn.net/article/details/119835816

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品视频国产 | 好大好硬好深好爽想要之黄蓉 | 国产福利片在线 | 亚洲剧情在线观看 | 911亚洲精品国内自产 | 欧美性黑人巨大gaysex | 久久aa毛片免费播放嗯啊 | 日本天堂视频在线观看 | 日本黄色大片免费观看 | 欧美福利在线观看 | 性欧美f| chinese国产打屁股 | 亚洲欧美天堂 | 国产精品一二三 | 久久热在线视频精品店 | 国产成人盗拍精品免费视频 | 日韩中文字幕一区 | 亚洲无人区乱码中文字幕 | 好紧好爽范冰冰系列 | 国产亚洲视频在线 | 无套暴躁白丝秘书 | 免费高清资源黄网站在线观看 | 国产成人精品一区二区阿娇陈冠希 | www国产精品 | 麻豆在线观看 | 亚洲欧美专区精品伊人久久 | 精品亚洲456在线播放 | 女学生被老师调教在教室 | 亚洲国产精品久久久久久 | 免费看美女被靠到爽 | 亚洲 欧美 在线观看 | yy6080午夜国产免费福利 | jk制服喷水| 五月天色网站 | 乌克兰一级片 | 3d动漫免费 | 九九99热久久精品在线6 | 日本一区二区视频在线观看 | 成人福利网站含羞草 | 亚洲国产精品牛在线 | 草逼网站视频 |