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


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, url

from 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》網站。


免責聲明!

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



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