好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Django中url與path及re_path的區(qū)別說明

Django中url與path及re_path的區(qū)別說明

熱門標(biāo)簽:400電話 申請 條件 電銷機器人 金倫通信 云南地圖標(biāo)注 南京crm外呼系統(tǒng)排名 北京外呼電銷機器人招商 鄭州智能外呼系統(tǒng)中心 賓館能在百度地圖標(biāo)注嗎 crm電銷機器人 汕頭電商外呼系統(tǒng)供應(yīng)商

Django中url與path及re_path區(qū)別

初學(xué)者一般不能分清兩者的區(qū)別,所這簡單介紹下兩者.首先,url是Django 1.x中的寫法,p在Django2.1中,開始舍棄django1.x中的url寫法。

在django2.x中,描寫url配置的有兩個函數(shù)path和re_path.re_path()函數(shù)可以看做是django 1.x中得url函數(shù),即可以在路徑中使用正則.

一.path和url的區(qū)別:

django.urls path
django.conf.urls url

path與url是兩個不同的模塊,效果都是響應(yīng)返回頁面, path調(diào)用的是python第三方模塊或框架,而url則是自定義的模塊,如Views下的def函數(shù)對應(yīng)你url中的參數(shù)值.

例如:

 url(r'^login',views.login),
 def login(request):
  return render(request,'login.html')

1、url

在settings.py文件中有一個ROOT_URLCONF設(shè)置,設(shè)置的是在訪問網(wǎng)址時通過哪一個url文件去匹配所請求的網(wǎng)址

url參數(shù)

url或者re_path要復(fù)雜一些 (r'^blog/(?P[0-9]{4})/′)首先需要開始符和結(jié)尾符 ') 首先需要開始符^和結(jié)尾符 ′)首先需要開始符和結(jié)尾符,參數(shù)匹配一個 ()就是一個匹配參數(shù),

(?P匹配的字段名>正則表達(dá)式)

進(jìn)行匹配是不包括get或者post請求方式的參數(shù)及域名比如www.qq.com/blog?num=1并不會匹配?后邊的字符

可以給request參數(shù)設(shè)置一個默認(rèn)值,最常見的分頁url,比如

 urlpatterns=[
   url(r'^page/$',views.page),
   url(r'^page(?Pnum>[0-9]+)$',views.page)
 ]
 
 #views 
 def page(request,num='1'):
   pass

自定義錯誤頁面關(guān)鍵字handler400=blog.views.page_no_find

 #urls.py
 …
 handler400=blog.views.page_no_find

2、path

參數(shù)的使用方法path(‘blog/str:string/') 簡單了很多,就是尖括號,前邊是str代表參數(shù)的類型,后面代表參數(shù)的名稱

path參數(shù)類型

捕獲url中的參數(shù)需要用到尖括號> 指定尖括號中的值類型比如int:astr:link這個轉(zhuǎn)換器還有許多類型比如:

int 匹配0和正整數(shù)

str 匹配任何空字符串但不包括/

slug 可理解為注釋 匹配任何ascii碼包括連接線和下劃線

uuid 匹配一個uuid對象(該對象必須包括破折號—,所有字母必須小寫)

path 匹配所有的字符串 包括/(意思就是path前邊和后邊的所有)

3.re_path

如果遇上路徑和轉(zhuǎn)換器語法都不足以定義的URL模式,那么就需要使用正則表達(dá)式,這時候就需要使用re_path(),而非path()。

舉例:傳遞 數(shù)字結(jié)尾的參數(shù)

re_path(r'(\d+)/$',views.peopleList,name='peopleList'),

二、python3中使用django2,常見設(shè)置path問題

1.Django2中使用

在python3中使用django2的時候,在設(shè)置urls的時候,會遇到一些坑。這里做一下記錄。

系統(tǒng)的urls.py里,在1.X的時候,都是采用的url方式。如下

url(r'^', include("test1.urls")),

在2.0中,它推薦使用的是path模塊,所以這里就改寫一下。引包

 from django.urls import path
 
 path('', include("test1.urls")),

注意:

如果要使用正則,則要引入re_path,from django.urls import path, re_path

這里面的正則寫法,有點意思,一定要使用()把正則包起來,然后用?P正式表達(dá)式 這種形式來表式

2.APP中使用path

1.x里面的寫法是

url(r'^page=(\d+)key=(\w+)$', views.detail, name=”detail”),

現(xiàn)在的寫法

re_path('page=(?Ppage>\d+)key=(?Pkey>\w+)', views.detail, name="detail"),

這樣一對比就能明白了吧,使用的鏈接是http://127.0.0.1:8000/page=12key=abc

3.系統(tǒng)的urls.py里的namespace的問題

1.x中寫法

url(r'^', include("test1.urls", namespace='test1')),

可是在2.0中你這么寫,會報錯,說什么app_name的,這個自己可以看一下,怎么解決呢,其實很簡單,只要在自己項目urls.py中加上這句就行了.如果不加的話可能報錯,

app_name = 'test1'(你的APP名)

注:

使用url也是可以的,為了簡便起見,盡量使用符合版本的字段,另外在寫路徑時應(yīng)該嚴(yán)格按照語法,比如'^' 和/$就不能缺,不能前面寫url,括號里面確按照path的寫法,這樣很容易出錯,到了關(guān)鍵時刻,很難定位問題點,很浪費時間.

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • Django中多種重定向方法使用詳解
  • Django 路由控制的實現(xiàn)
  • Python Django中的STATIC_URL 設(shè)置和使用方式
  • Django中URL的參數(shù)傳遞的實現(xiàn)

標(biāo)簽:昆明 浙江 西寧 錫林郭勒盟 懷化 文山 梅州 石家莊

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Django中url與path及re_path的區(qū)別說明》,本文關(guān)鍵詞  Django,中,url,與,path,及,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Django中url與path及re_path的區(qū)別說明》相關(guān)的同類信息!
  • 本頁收集關(guān)于Django中url與path及re_path的區(qū)別說明的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 日韩2区| 好猛好爽好湿别停~高H漫画视频| 狠狠色噜噜狠狠狠狠97影音先锋| 蘑菇传媒视频在线观看| 男性GAY无套?受崩溃哭小说| 1024金沙人妻你懂的旧版| 扒开双腿猛进入小柔校园小说| 岛国大片免费| 母子恋交友网站| 人一禽一性一交乱一区| japanese丰满HD人妻| 永久免费看黄漫画软件| 91精品视频观看| 国产一级毛片国语版| 久久精品9| 五月天激情国产综合婷婷婷| 91精品国产福利尤物| 久久频精品99香蕉国产| 粗一硬一长一进一爽一A片| 国产免费无码高潮2023| 美女裸体跳舞秘?视频| 午夜狠狠干| 365天dni第一部未删减| 91风吟鸣唱精品系列嫩模 | 一级做a爰片久久毛片毛片| 国产美女裸体永久免费软件| 军训时教官把我cao了| 日本三不卡| 2020毛片| 中文 日韩 丝袜 制服 无码| 色戒梁朝伟根部进入汤唯图片| 国产伦精品一区二区三区免费观 | 欧美?日产?国产精品| 被上司中出| 欧美男同巨大粗爽gvvideos| 做受???高潮AAAA图片| 按摩师把我添高潮了6次| 村长你太厉害了| 帮我…我想要hh| 美女被cao到哭视频| 乖让我放里面睡h男男|