Python開發入門與實戰2-第一個Django項目

來源:互聯網
上載者:User

標籤:

2.第一個Django項目

上一章節我們完成了python,django和資料庫等運行環境的安裝,現在我們來建立第一個django project吧,邁出使用django開發應用的第一步。

2.1.建立第一個Django項目

我們建立一個我們存放Django的工作目錄,樣本:C:\My Files\Python Projects 在命令提示字元視窗進入到剛才建立的目錄,運行運行命令:

django-admin.py startproject mysite

這樣會在你的目前的目錄下建立一個目錄mysite。

注意:確保在Windows PATH 環境變數中增加了django-admin.py檔案路徑:C:\Python27\Scripts,如沒有增加路徑可以通過運行如下命令:

path %path%; C:\Python27\Scripts

 

startproject 命令建立一個目錄,包含內容如下:

mysite/manage.py   mysite/      __init__.py      wsgi.py      settings.py      urls.py

目錄及檔案說明如下:

  • manage.py      :一種命令列工具,允許你以多種方式與該 Django 項目進行互動。 鍵入python manage.py      help,查看協助。

 

mysite/ 下檔案:

 

  • __init__.py :讓 Python 把該目錄當成一個開發包 (即一組模組)所需的檔案。 這是一個空檔案,一般不需要修改它。
  • settings.py :該檔案是 Django 項目的設定或設定檔。
  • urls.py:Django項目的URL設定檔,其為你的django網站的目錄。
  • wsgi.py:Django項目的wsgi配置,Web伺服器網關介面檔案(Python Web Server Gateway Interface,縮寫為WSGI)。

 

2.2.運行程式開發伺服器

django開發服務是可用在開發期間的,一個內建的,輕量的web服務。在準備發布產品之前,無需進行產品級 Web 服務器(比如 Apache)的配置工作。 程式開發伺服器監測你的代碼並自動載入它,修改代碼時無需重啟動服務,就可以查看修改結果。

切換到項目目錄 (cd mysite ),運行下面的命令:

python manage.py runserver

 

這將會在連接埠8000啟動一個本機伺服器, 並且只能從你的這台電腦串連和訪問。 既然伺服器已經運行起來了,現在用網頁瀏覽器訪問 http://127.0.0.1:8000/ 。 我們可以看到一個淡藍色Django歡迎頁面。

它開始工作了,如:

 

 

2.3.Hello World頁面

我們的第一個目標,是建立一個網頁,用來輸出這個著名的樣本資訊:Hello world.

如果你曾經發布過Hello world頁面,但是沒有使用網頁架構,只是簡單的在hello.html文字檔中輸入Hello World,然後上傳到一個網頁伺服器上,如:http:// 127.0.0.1/helloWorld.html

注意,這裡有兩個關鍵的資訊: ①一個包括字串 "Hello world"的頁面;②頁面的URL( http://127.0.0.1/helloWorld.html)。

使用Django在做網頁會比較不一樣,我們會用不同的方法來完成這兩個關鍵資訊。①頁面的內容是靠view function(視圖函數)來實現;②URL定義在urls.py檔案的 URLconf配置資訊裡。

首先,我們先寫一個關於Hello World視圖函數。

第一份視圖:

在上一章我們使用django-admin.py startproject建立的mysite檔案夾中,我們手工建立一個叫做views.py的空檔案。這個檔案將包含這一章的視圖定義資訊。 view.py檔案名稱為Django約定俗成,便於理解和閱讀代碼。

我們的Hello world視圖非常簡單。 是一個完整的函數和匯入聲明,你需要輸入到views.py檔案的內容如下:

from django.http import   HttpResponse def helloworld(request):    return HttpResponse("Hello   world")

說明:Django一個視圖就是Python的一個函數。這個函數第一個參數的類型是HttpRequest;它返回一個HttpResponse執行個體。下面我們將使我們的第一個一個Python的函數成為一個Django可識別的視圖。

2.3.1.你的第一個URLconf

我們把URLconf配置資訊理解為Django網站的目錄。 它的本質上是定義 URL 模式以及要為該 URL 模式調用的視圖函數之間的映射表。通過這個映射表Django就可以知道,對於某個特定的URL訪問,需要執行那個具體的視圖函數代碼。 例如,當使用者訪問/ helloworld /時,調用視圖函數helloworld (),這個視圖函數存在於Python模組檔案view.py中。

前一章中執行 django-admin.py startproject 時,自動為建立了一份 URLconf(即 urls.py 檔案)。 預設的urls.py會像下面這個樣子:

from django.conf.urls import patterns, include, url # Uncomment the next two lines to enable the admin:# from django.contrib import admin# admin.autodiscover() urlpatterns = patterns(‘‘,    # Examples:    # url(r‘^$‘,   ‘mysite.views.home‘, name=‘home‘),    #   url(r‘^mysite/‘, include(‘mysite.foo.urls‘)),     # Uncomment the   admin/doc line below to enable admin documentation:    #   url(r‘^admin/doc/‘, include(‘django.contrib.admindocs.urls‘)),     # Uncomment the   next line to enable the admin:    #   url(r‘^admin/‘, include(admin.site.urls)),)


我們想在URLconf中加入URL和view,只需增加映射URL模式和view功能的Python tuple即可。下面示範如何添加view中helloworld功能:

from django.conf.urls import patterns, include, urlfrom mysite.views import helloworld # Uncomment the next two lines to enable the admin:# from django.contrib import admin# admin.autodiscover() urlpatterns = patterns(‘‘,    # Examples:    # url(r‘^$‘,   ‘mysite.views.home‘, name=‘home‘),    #   url(r‘^mysite/‘, include(‘mysite.foo.urls‘)),     # Uncomment the   admin/doc line below to enable admin documentation:    # url(r‘^admin/doc/‘,   include(‘django.contrib.admindocs.urls‘)),     # Uncomment the   next line to enable the admin:    #   url(r‘^admin/‘, include(admin.site.urls)),     (‘^helloworld/$‘, helloworld),)

儲存檔案,如果沒有啟動Django程式開發伺服器來測試修改好的 URLconf,運行命令列 python manage.py runserver 。

如果剛才它一直運行,不需要手工重啟、程式開發伺服器會自動監測代碼改動並自動重新裝載新加資訊。直接重新整理剛才的網頁http://127.0.0.1:8000/就可以看到:

 

如,網站已經看到我們映射的網頁目錄。

開啟你的瀏覽器訪問 http://127.0.0.1:8000/helloworld/ 。 你就可以看到輸出結果了。 程式開發伺服器將自動檢測Python代碼的更改情況來做必要的重新載入。開啟瀏覽器直接輸入“http://127.0.0.1:8000/ helloworld/”,我們將看到我們建立的第一個Django視圖輸出的Hello world。

 

現在我們已經成功建立了第一個Django的web頁面。

2.4.小結

Django網站與原來常規的網站頁面會比較大的差別,傳統網站的靜態頁面檔案,在Django架構裡都變成了一個一個對應的視圖函數,需要我們注意。下一章節會介紹到Django如何通過動態拼接html頁面代碼來實現網站頁面的。本文主要為初學者提供Django入門和一些具體實踐例子內容。關於更多的Django運行和裝載原理,請參考《The Django Book》網站。

Python開發入門與實戰2-第一個Django項目

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.