Python框架之Django學習筆記(四)


第一個基於Django的頁面:Hello World

  正如我們的第一個目標,創建一個網頁,用來輸出這個著名的示例信息:Hello world.

  第一個視圖

  Hello world視圖非常簡單。 這些是完整的函數和導入聲明,把它們輸入到views.py文件:

1 from django.http import HttpResponse
2 
3 def hello(request):
4    return HttpResponse("Hello World!\nIt's my First django web!")

 這里主要講的是: 一個視圖就是Python的一個函數。這個函數第一個參數的類型是HttpRequest;它返回一個HttpResponse實例。為了使一個Python的函數成為一個Django可識別的視圖,它必須滿足這兩個條件。

第一個URLConf

  現在,如果你再運行:python manage.py runserver,你還將看到Django的歡迎頁面,而看不到我們剛才寫的Hello world顯示頁面。 那是因為我們的mysite項目還對hello視圖一無所知。我們需要通過一個詳細描述的URL來顯式的告訴它並且激活這個視圖。 (繼續我們剛才類似發布靜態HTML文件的例子。現在我們已經創建了HTML文件,但還沒有把它上傳至服務器的目錄。)為了綁定視圖函數和URL,我們使用URLconf。

  URLconf 就像是 Django 所支撐網站的目錄。 它的本質是 URL 模式以及要為該 URL 模式調用的視圖函數之間的映射表。 你就是以這種方式告訴 Django,對於這個 URL 調用這段代碼,對於那個 URL 調用那段代碼。 例如,當用戶訪問/foo/時,調用視圖函數foo_view(),這個視圖函數存在於Python模塊文件view.py中。

  前一章中執行 django-admin.py startproject 時,該腳本會自動為你建了一份 URLconf(即 urls.py 文件)。 默認的urls.py會像下面這個樣子:

 1 from django.conf.urls import patterns, include, url
 2 
 3 from django.contrib import admin
 4 admin.autodiscover()
 5 
 6 urlpatterns = patterns('',
 7     # Examples:
 8     # url(r'^$', 'myfirstsite.views.home', name='home'),
 9     # url(r'^blog/', include('blog.urls')),
10 
11     url(r'^admin/', include(admin.site.urls)),
12 )

 

  讓我們逐行解釋一下代碼:

  • 第1行導入django.conf.urls.defaults下的所有模塊,它們是Django URLconf的基本構造。 這包含了一個patterns函數

  • 第11行調用 patterns() 函數並將返回結果保存到 urlpatterns 變量。

  當前應該注意是 urlpatterns 變量, Django 期望能從 ROOT_URLCONF 模塊中找到它。 該變量定義了 URL 以及用於處理這些 URL 的代碼之間的映射關系。 默認情況下,URLconf 所有內容都被注釋起來了——Django 應用程序還是白版一塊。

  如果想在URLconf中加入URL和view,只需增加映射URL模式和view功能的Python tuple即可. 這里演示如何添加view中hello功能.

1 from django.conf.urls.defaults import *
2 from mysite.views import hello
3 
4 urlpatterns = patterns('',
5     ('^hello/$', hello),
6 )

  這里需要做兩處修改。

  • 首先,從模塊 (在 Python 的 import 語法中, mysite/views.py 轉譯為 mysite.views ) 中引入了hello 視圖。

  • 接下來,我們為urlpatterns加上一行: (‘^hello/$’, hello), 這行被稱作URLpattern,它是一個Python的元組。元組中第一個元素是模式匹配字符串(正則表達式);第二個元素是那個模式將使用的視圖函數。

  啟動Django開發服務器來測試修改好的 URLconf, 運行命令行 python manage.py runserver 。 (如果你讓它一直運行也可以,開發服務器會自動監測代碼改動並自動重新載入,所以不需要手工重啟) 開發服務器的地址是http://127.0.0.1:8000/ ,打開你的瀏覽器訪問 http://127.0.0.1:8000/hello/ 。 你就可以看到輸出結果了。 開發服務器將自動檢測Python代碼的更改來做必要的重新加載, 所以你不需要重啟Server在代碼更改之后。服務器運行地址`` http://127.0.0.1:8000/`` ,所以打開瀏覽器直接輸入`` http://127.0.0.1:8000/hello/`` ,你將看到由你的Django視圖輸出的字符串。

  至此,第一個Django的web頁面完成。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM