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

在Django的URLconf中進行函數(shù)導入的方法

 更新時間:2015年07月18日 10:53:03   投稿:goldensun  
這篇文章主要介紹了在Django的URLconf中進行函數(shù)導入的方法,Django是Python的最為著名的開發(fā)框架,需要的朋友可以參考下

看下這個 URLconf:

from django.conf.urls.defaults import *
from mysite.views import hello, current_datetime, hours_ahead

urlpatterns = patterns('',
  (r'^hello/$', hello),
  (r'^time/$', current_datetime),
  (r'^time/plus/(\d{1,2})/$', hours_ahead),
)

在 URLconf 中的每一個入口包括了它所關聯(lián)的視圖函數(shù),直接傳入了一個函數(shù)對象。 這就意味著需要在模塊開始處導入視圖函數(shù)。

但隨著 Django 應用變得復雜,它的 URLconf 也在增長,并且維護這些導入可能使得管理變麻煩。 (對每個新的view函數(shù),你不得不記住要導入它,并且采用這種方法會使導入語句將變得相當長。)可以通過導入 views 模塊本身來避免這個麻煩。 下面例子的URLconf與前一個等價:

from django.conf.urls.defaults import *
**from mysite import views**

urlpatterns = patterns('',
  (r'^hello/$', **views.hello** ),
  (r'^time/$', **views.current_datetime** ),
  (r'^time/plus/(d{1,2})/$', **views.hours_ahead** ),
)

Django 還提供了另一種方法可以在 URLconf 中為某個特別的模式指定視圖函數(shù): 你可以傳入一個包含模塊名和函數(shù)名的字符串,而不是函數(shù)對象本身。 繼續(xù)示例:

from django.conf.urls.defaults import *

urlpatterns = patterns('',
  (r'^hello/$', **'mysite.views.hello'** ),
  (r'^time/$', **'mysite.views.current_datetime'** ),
  (r'^time/plus/(d{1,2})/$', **'mysite.views.hours_ahead'** ),
)

(注意視圖名前后的引號。 應該使用帶引號的 'mysite.views.current_datetime' 而不是 mysite.views.current_datetime 。)

使用這個技術,就不必導入視圖函數(shù)了;Django 會在第一次需要它時根據(jù)字符串所描述的視圖函數(shù)的名字和路徑,導入合適的視圖函數(shù)。

當使用字符串技術時,你可以采用更簡化的方式:提取出一個公共視圖前綴。 在我們的URLconf例子中,每個視圖字符串的開始部分都是``\,造成重復輸入。 我們可以把公共的前綴提取出來,作為第一個參數(shù)傳給\ ``函數(shù):

System Message: WARNING/2 (<string>, line 99); backlink

Inline literal start-string without end-string.

from django.conf.urls.defaults import *

urlpatterns = patterns(**'mysite.views'** ,
  (r'^hello/$', **'hello'** ),
  (r'^time/$', **'current_datetime'** ),
  (r'^time/plus/(d{1,2})/$', **'hours_ahead'** ),
)

注意既不要在前綴后面跟著一個點號("." ),也不要在視圖字符串前面放一個點號。 Django 會自動處理它們。

牢記這兩種方法,哪種更好一些呢? 這取決于你的個人編碼習慣和需要。

字符串方法的好處如下:

    更緊湊,因為不需要你導入視圖函數(shù)。

    如果你的視圖函數(shù)存在于幾個不同的 Python 模塊的話,它可以使得 URLconf 更易讀和管理。

函數(shù)對象方法的好處如下:

    更容易對視圖函數(shù)進行包裝(wrap)。 參見本章后面的《包裝視圖函數(shù)》一節(jié)。

    更 Pythonic,就是說,更符合 Python 的傳統(tǒng),如把函數(shù)當成對象傳遞。

兩個方法都是有效的,甚至你可以在同一個 URLconf 中混用它們。 決定權在你。

相關文章

  • 在NumPy中創(chuàng)建空數(shù)組/矩陣的方法

    在NumPy中創(chuàng)建空數(shù)組/矩陣的方法

    今天小編就為大家分享一篇在NumPy中創(chuàng)建空數(shù)組/矩陣的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Scrapy+Selenium自動獲取cookie爬取網(wǎng)易云音樂個人喜愛歌單

    Scrapy+Selenium自動獲取cookie爬取網(wǎng)易云音樂個人喜愛歌單

    這篇文章主要介紹了Scrapy+Selenium自動獲取cookie爬取網(wǎng)易云音樂個人喜愛歌單,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • python中extend函數(shù)舉例詳解以及對比

    python中extend函數(shù)舉例詳解以及對比

    Python中的extend函數(shù)是用于將一個列表的元素添加到另一個列表中,它會將第一個列表中的元素逐個添加到第二個列表的末尾,這篇文章主要給大家介紹了關于python中extend函數(shù)舉例詳解以及對比的相關資料,需要的朋友可以參考下
    2024-03-03
  • Python實現(xiàn)雙向RNN與堆疊的雙向RNN的示例代碼

    Python實現(xiàn)雙向RNN與堆疊的雙向RNN的示例代碼

    這篇文章主要為大家詳細介紹了如何利用Python語言實現(xiàn)雙向RNN與堆疊的雙向RNN,文中詳細講解了雙向RNN與堆疊的雙向RNN的原理及實現(xiàn),需要的可以參考一下
    2022-07-07
  • PyQt5每天必學之切換按鈕

    PyQt5每天必學之切換按鈕

    這篇文章主要為大家詳細介紹了PyQt5每天必學之切換按鈕的相關資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • python3報錯check_hostname?requires?server_hostname的解決

    python3報錯check_hostname?requires?server_hostname的解決

    這篇文章主要介紹了python3報錯check_hostname?requires?server_hostname的解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • python程序主動退出進程的五種方式

    python程序主動退出進程的五種方式

    對于如何結束一個Python程序或者用Python操作去結束一個進程等,Python本身給出了好幾種方法,而這些方式也存在著一些區(qū)別,對相關的幾種方法看了并實踐了下,同時也記錄下,需要的朋友可以參考下
    2024-02-02
  • Python中為feedparser設置超時時間避免堵塞

    Python中為feedparser設置超時時間避免堵塞

    為feedparser設置一個超時時間,可是feedparser并沒有提供這個功能,只好采用其他方法了,感興趣的朋友可以看看
    2014-09-09
  • python3 flask 文件占用未釋放問題

    python3 flask 文件占用未釋放問題

    這篇文章主要介紹了python3 flask 文件占用未釋放問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • python包導入的兩種方式

    python包導入的兩種方式

    本文主要介紹了python包導入的方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03

最新評論