最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django 路由系統(tǒng)URLconf的使用

 更新時(shí)間:2018年10月11日 08:22:13   作者:學(xué)霸初養(yǎng)成  
這篇文章主要介紹了Django 路由系統(tǒng)URLconf的使用,詳細(xì)的介紹了什么是URLconf以及如何使用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

URLconf是什么?

URL配置(URLconf)就像Django 所支撐網(wǎng)站的目錄。它的本質(zhì)是URL與要為該URL調(diào)用的view函數(shù)之間的映射表;你就是以這種方式告訴Django,對于這個(gè)URL調(diào)用這段代碼,對于那個(gè)URL調(diào)用那段代碼。

urlpatterns = [
   url(正則表達(dá)式, views視圖函數(shù),參數(shù),別名),
   re_path(正則表達(dá)式, views視圖函數(shù),參數(shù),別名), (在2.0以上版本中使用re_path),
]

參數(shù)說明:

正則表達(dá)式(regex):

regex是正則表達(dá)式的通用縮寫,它是一種匹配字符串或url地址的語法。Django拿著用戶請求的url地址,在urls.py文件中對urlpatterns列表中的每一項(xiàng)條目從頭開始進(jìn)行逐一對比,一旦遇到匹配項(xiàng),立即執(zhí)行該條目映射的視圖函數(shù)或二級路由,其后的條目將不再繼續(xù)匹配。因此,url路由的編寫順序至關(guān)重要!需要注意的是,regex不會去匹配GET或POST參數(shù)或域名,例如對于https://www.example.com/myapp/,regex只嘗試匹配myapp/。對于https://www.example.com/myapp/?page=3,regex也只嘗試匹配myapp/。如果你想深入研究正則表達(dá)式,可以讀一些相關(guān)的書籍或?qū)U?,但是在Django的實(shí)踐中,你不需要多高深的正則表達(dá)式知識。

性能注釋:正則表達(dá)式會進(jìn)行預(yù)先編譯當(dāng)URLconf模塊加載的時(shí)候,因此它的匹配搜索速度非常快,你通常感覺不到。

view試圖函數(shù):

當(dāng)正則表達(dá)式匹配到某個(gè)條目時(shí),自動將封裝的HttpRequest對象作為第一個(gè)參數(shù),正則表達(dá)式“捕獲”到的值作為第二個(gè)參數(shù),傳遞給該條目指定的視圖。如果是簡單捕獲,那么捕獲值將作為一個(gè)位置參數(shù)進(jìn)行傳遞,如果是命名捕獲,那么將作為關(guān)鍵字參數(shù)進(jìn)行傳遞。

參數(shù)(kwargs):

任意數(shù)量的關(guān)鍵字參數(shù)可以作為一個(gè)字典傳遞給目標(biāo)視圖。

別名(name):

對你的URL進(jìn)行命名,可以讓你能夠在Django的任意處,尤其是模板內(nèi)顯式地引用它。相當(dāng)于給URL取了個(gè)全局變量名,避免了高額的維護(hù)成本。

 

示例:

例如服務(wù)器ip地址為127.0.0.1:8080

urlpatterns = [
  path('admin/', admin.site.urls),
  re_path(r'^$', views.index),      # 當(dāng)用戶訪問 http://127.0.0.1:8080 時(shí),后端用view.py中的index()函數(shù)處理。$表示結(jié)尾
  re_path(r"^host/(\d+)",views.host),  # URL示例:127.0.0.1:8080/host/100 \d代表數(shù)字;()表示無名分組且可以傳參,函數(shù)內(nèi)參數(shù)和次順序一一對應(yīng);
      # +表示重復(fù)一次或多次前面類型的字符。(\d+)表示不定位數(shù)的數(shù)字
  re_path(r'^host_list/(\d{4})/(\d{2})$', views.host_list), # URL示例: 127.0.0.1:8080/host_list/2015/10  {4}表示重復(fù)四次前面的數(shù)字
  url(r"^register",views.register,name="reg"),  # 127.0.0.1:8080/register reg是URL別名,在模板中,例如<a href="{% url 'reg' %}" rel="external nofollow" ></a>
  re_path(r"^login",views.login,name="log"),  # 127.0.0.1:8080/login
  re_path(r'^article/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})',views.article_month), # 127.0.0.1:8080/article/2015/09/10 ?P表示有名分組,
      # ()內(nèi)是分組,<>內(nèi)是組名函數(shù)內(nèi)參數(shù)名必須和組名相同,順序可以亂。
]

路由分發(fā)

如果一個(gè)項(xiàng)目下有很多的app,那么在urls.py里面就要寫巨多的urls映射關(guān)系。這樣看起來很不靈活,而且雜亂無章。

我們可以根據(jù)不同的app來分類不同的url請求。

首先,在urls.py里寫入urls映射條目。注意要導(dǎo)入include方法

url(r'^app1/',include("app01.urls")), # 路由分發(fā),所有app1開頭的,全部轉(zhuǎn)移到app01下的urls.py里去處理

要在app01下創(chuàng)建一個(gè)urls.py文件,用來處理請求的URL,使之與views建立映射

urlpatterns = [
  re_path(r'index/$', views.index), # 127.0.0.1:8080/app1/index
]

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python使用MySQLdb訪問mysql數(shù)據(jù)庫的方法

    python使用MySQLdb訪問mysql數(shù)據(jù)庫的方法

    這篇文章主要介紹了python使用MySQLdb訪問mysql數(shù)據(jù)庫的方法,實(shí)例分析了Python使用MySQLdb模塊操作mysql數(shù)據(jù)庫的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • python中xlutils庫用法淺析

    python中xlutils庫用法淺析

    在本篇文章里小編給大家整理了一篇關(guān)于python中xluntils庫用法淺析的內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2020-12-12
  • python字符串運(yùn)算符詳情

    python字符串運(yùn)算符詳情

    這篇文章主要介紹了 python字符串運(yùn)算符詳情,在編程里,用的最多的就是字符串,字符串同時(shí)也是各類數(shù)據(jù)的中轉(zhuǎn)站,下文基于python的相關(guān)資料介紹字符串運(yùn)算符,需要的小伙伴可以參考一下
    2022-04-04
  • Python多進(jìn)程模式實(shí)現(xiàn)多核CPU并行計(jì)算

    Python多進(jìn)程模式實(shí)現(xiàn)多核CPU并行計(jì)算

    隨著計(jì)算機(jī)硬件的不斷發(fā)展,多核CPU已經(jīng)成為普及的硬件設(shè)備,在本文中,我們將重點(diǎn)介紹在Python中如何利用多進(jìn)程模式提高程序的執(zhí)行效率,感興趣的可以了解一下
    2023-05-05
  • python入門字符串拼接\截取\轉(zhuǎn)數(shù)字理解學(xué)習(xí)

    python入門字符串拼接\截取\轉(zhuǎn)數(shù)字理解學(xué)習(xí)

    本篇內(nèi)容我們主要講有關(guān)Python字符串的用法,包括字符串的拼接、字符串怎么轉(zhuǎn)數(shù)字、字符串的格式化、字符串函數(shù)等內(nèi)容,有需要的朋友可以借鑒參考下
    2021-09-09
  • python中print格式化輸出的問題

    python中print格式化輸出的問題

    所謂格式化輸出,就是創(chuàng)建一個(gè)可以嵌入變量內(nèi)容的字符串。這篇文章主要介紹了python中print格式化輸出,需要的朋友可以參考下
    2021-04-04
  • Pycharm安裝scrapy及初始化爬蟲項(xiàng)目的完整步驟

    Pycharm安裝scrapy及初始化爬蟲項(xiàng)目的完整步驟

    因?yàn)槿腴Tpython以來一直使用pycharm,所以對著黑白的DOS不習(xí)慣,所以此次來實(shí)現(xiàn)使用pycharm進(jìn)行實(shí)現(xiàn)使用scrapy框架,下面這篇文章主要給大家介紹了關(guān)于Pycharm安裝scrapy及初始化爬蟲項(xiàng)目的完整步驟,需要的朋友可以參考下
    2022-08-08
  • Pygame框架實(shí)現(xiàn)飛機(jī)大戰(zhàn)

    Pygame框架實(shí)現(xiàn)飛機(jī)大戰(zhàn)

    這篇文章主要為大家詳細(xì)介紹了Pygame框架實(shí)現(xiàn)飛機(jī)大戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • python調(diào)用接口的4種方式代碼實(shí)例

    python調(diào)用接口的4種方式代碼實(shí)例

    這篇文章主要介紹了python調(diào)用接口的4種方式代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Pyspark 線性回歸梯度下降交叉驗(yàn)證知識點(diǎn)詳解

    Pyspark 線性回歸梯度下降交叉驗(yàn)證知識點(diǎn)詳解

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于Pyspark 線性回歸梯度下降交叉驗(yàn)證的相關(guān)知識點(diǎn)及實(shí)例,需要的朋友們可以參考下。
    2021-12-12

最新評論

加查县| 吉首市| 凌云县| 星座| 开封县| 临朐县| 专栏| 普兰县| 甘孜县| 探索| 福州市| 秦皇岛市| 武胜县| 疏勒县| 如皋市| 文山县| 大连市| 北碚区| 正蓝旗| 营口市| 诸暨市| 阿克陶县| 安图县| 定南县| 马鞍山市| 个旧市| 阜康市| 永安市| 文山县| 行唐县| 汶川县| 岐山县| 铁岭县| 铁岭市| 韩城市| 油尖旺区| 晋州市| 奎屯市| 开鲁县| 屏东县| 宁津县|