欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2021年03月13日 10:52:02   作者:初學(xué)者GLY  
這篇文章主要介紹了Django中url與path及re_path的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

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

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

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

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

django.urls path
django.conf.urls url

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

例如:

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

1、url

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

url參數(shù)

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

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

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

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

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

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

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

2、path

參數(shù)的使用方法path(‘blog/str:string/') 簡(jiǎn)單了很多,就是尖括號(hào),前邊是str代表參數(shù)的類(lèi)型,后面代表參數(shù)的名稱(chēng)

path參數(shù)類(lèi)型

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

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

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

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

uuid 匹配一個(gè)uuid對(duì)象(該對(duì)象必須包括破折號(hào)—,所有字母必須小寫(xiě))

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

3.re_path

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

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

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

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

1.Django2中使用

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

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

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

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

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

注意:

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

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

2.APP中使用path

1.x里面的寫(xiě)法是

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

現(xiàn)在的寫(xiě)法

re_path('page=(?P<page>\d+)&key=(?P<key>\w+)', views.detail, name="detail"),

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

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

1.x中寫(xiě)法

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

可是在2.0中你這么寫(xiě),會(huì)報(bào)錯(cuò),說(shuō)什么app_name的,這個(gè)自己可以看一下,怎么解決呢,其實(shí)很簡(jiǎn)單,只要在自己項(xiàng)目urls.py中加上這句就行了.如果不加的話(huà)可能報(bào)錯(cuò),

app_name = 'test1'(你的APP名)

注:

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

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

相關(guān)文章

  • 利用python繪制數(shù)據(jù)曲線(xiàn)圖的實(shí)現(xiàn)

    利用python繪制數(shù)據(jù)曲線(xiàn)圖的實(shí)現(xiàn)

    這篇文章主要介紹了利用python繪制數(shù)據(jù)曲線(xiàn)圖的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Python?Flask?上傳文件測(cè)試示例

    Python?Flask?上傳文件測(cè)試示例

    這篇文章主要為大家介紹了Python?Flask?上傳文件測(cè)試的方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Python 找出英文單詞列表(list)中最長(zhǎng)單詞鏈

    Python 找出英文單詞列表(list)中最長(zhǎng)單詞鏈

    這篇文章主要介紹了Python 找出英文單詞列表(list)中最長(zhǎng)單詞鏈,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 使用Python編程分析火爆全網(wǎng)的魷魚(yú)游戲豆瓣影評(píng)

    使用Python編程分析火爆全網(wǎng)的魷魚(yú)游戲豆瓣影評(píng)

    本文來(lái)為大家介紹如何使用Python爬取影評(píng)的操作,主要是爬取《魷魚(yú)游戲》在豆瓣上的一些影評(píng),對(duì)數(shù)據(jù)做一些簡(jiǎn)單的分析,用數(shù)據(jù)的角度重新審視下這部劇,有需要的朋友可以借鑒參考下
    2021-10-10
  • pytorch簡(jiǎn)介

    pytorch簡(jiǎn)介

    Pytorch是torch的python版本,是由Facebook開(kāi)源的神經(jīng)網(wǎng)絡(luò)框架,專(zhuān)門(mén)針對(duì) GPU 加速的深度神經(jīng)網(wǎng)絡(luò)(DNN)編程。這篇文章給大家介紹pytorch的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2020-11-11
  • Python實(shí)現(xiàn)合并多個(gè)Excel文件中的指定sheet

    Python實(shí)現(xiàn)合并多個(gè)Excel文件中的指定sheet

    這篇文章主要為大家介紹了一個(gè)用于合并多個(gè)Excel文件中指定sheet的Python代碼,這個(gè)功能可以方便地整理和分析數(shù)據(jù),文中的示例代碼簡(jiǎn)潔易懂,需要的可以參考下
    2023-10-10
  • python中format函數(shù)如何使用

    python中format函數(shù)如何使用

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于python的format函數(shù)用法以及相關(guān)實(shí)例,需要的朋友們學(xué)習(xí)下。
    2020-06-06
  • Django實(shí)現(xiàn)前后端登錄

    Django實(shí)現(xiàn)前后端登錄

    這篇文章主要介紹了Django實(shí)現(xiàn)前后端登錄的示例,幫助大家更好的理解和學(xué)習(xí)使用Django,感興趣的朋友可以了解下
    2021-04-04
  • python庫(kù)umap有效地揭示高維數(shù)據(jù)的結(jié)構(gòu)和模式初探

    python庫(kù)umap有效地揭示高維數(shù)據(jù)的結(jié)構(gòu)和模式初探

    這篇文章主要介紹了python庫(kù)umap有效地揭示高維數(shù)據(jù)的結(jié)構(gòu)和模式初探,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • python簡(jiǎn)單的函數(shù)定義和用法實(shí)例

    python簡(jiǎn)單的函數(shù)定義和用法實(shí)例

    這篇文章主要介紹了python簡(jiǎn)單的函數(shù)定義和用法,實(shí)例分析了Python自定義函數(shù)及其使用方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-05-05

最新評(píng)論