第二章:入門

第二章:入門

因爲現代Web開發環境由多個部件組成,安裝Django須要幾個步驟。 這一章,咱們將演示如何安裝框架以及一些依賴關係。python

由於Django就是純Python代碼,它能夠運行在任何Python能夠運行的環境,甚至是手機上! 可是這章只說起Django安裝的通用腳本。 咱們假設你把它安裝在桌面/筆記本電腦或服務器。mysql

日後,在第12章,咱們將討論如何部署Django到一個生產站點。linux

Python 安裝

Django自己是純Python編寫的,因此安裝框架的第一步是確保你已經安裝了Python。web

Python版本

核心Django框架能夠工做在2.3至2.6(包括2.3和2.6)之間的任何Python版本。 Django的可選GIS(地理信息系統)支持須要Python 2.4到2.6。sql

若是你不肯定要安裝Python的什麼版本,而且你徹底拿不定主意的話,那就選2.x系列的最新版本吧。 版本2.6。 雖然Django在2.3至2.6版之間的任意Python版本下都同樣運行得很好,可是新版本的Python提供了一些你可能比較想應用在你的程序裏 的,更加豐富和額外的語言特性。 另外,某些你可能要用到的Django第三方插件會要求比Python 2.3更新的版本,因此使用比較新的Python版本會讓你有更多選擇。數據庫

Django和 Python 3.0django

在寫做本書的時候,Python3.0已經發布,但Django暫時還不支持。 Python3.0這個語言自己引入了大量不向後兼容的改變,所以,咱們預期大多數主要的Python庫和框架將花幾年才能銜接,包括Django。編程

若是你是個Python新手而且正迷茫於究竟是學習Python 2.x仍是Python 3.x的話,咱們建議你選擇Python 2.x。windows

安裝

若是使用的是 Linux 或 Mac OS X ,系統可能已經預裝了 Python 。在命令提示符下 (或 OS X 的終端中) 輸入 python ,若是看到以下信息,說明 Python 已經裝好了: 在命令行窗口中輸入python (或是在OS X的程序/工具/終端中)。 若是你看到這樣的信息,說明 python 已經安裝好了.後端

Python 2.4.1 (#2, Mar 31 2005, 00:05:10)
[GCC 3.3 20030304 (Apple Computer, Inc. build 1666)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

不然, 你須要下載並安裝Python. 它既快速又方便,而詳細說明可參考http://www.python.org/download/

安裝 Django

任什麼時候候,都有兩個不一樣版本的Django供您選擇。 最新的官方發行版和有風險的主幹版本。 安裝的版本取決於您的優先選擇。 你須要一個穩定的經過測試的Django,或是你想要包括最新功能的版本,也許你可對Django自己做貢獻,而把穩定做爲代價?

咱們推薦選定一個正式發佈版本,但重要的是瞭解到主幹開發版本的存在,由於在文檔和社區成員中你會發現它被提到。

安裝官方發佈版

官方發佈的版本帶有一個版本號,例如1.0.3或1.1,而最新版本老是能夠在http://www.djangoproject.com/download/找到。

若是您在用Linux系統,其中包括Django的包,使用默認的版本是個好主意。 這樣,你將會經過系統的包管理獲得安全的升級。

若是你的系統沒有自帶Django,你能夠本身下載而後安裝框架。 首先,下載名字相似於Django-1.0.2-final.tar.gz壓縮文件。(下載到哪裏無所謂,安裝程序會把Django文件放到正確的地方。)解壓縮以後運行setup.py install,像操做大多數Python庫同樣。

如下是如何在Unix系統上安裝的方法:

  1. tar xzvf Django-*.tar.gz 。

  2. cd Django-* 。

  3. sudo python setup.py install 。

Windows系統上,推薦使用7-Zip(http://www.djangoproject.com/r/7zip/)來解壓縮.tar.gz文件。 解壓縮完成後,以管理員權限啓動一個DOS Shell(命令提示符),而後在名字以Django-開始的目錄裏執行以下命令:

python setup.py install

若是你很好奇: Django將被安裝到你的Python安裝目錄`` 的site-package`` 目錄(Python從該目錄尋找第三方庫)。 一般狀況下,這個目錄在/usr/lib/python2.4/site-packages

安裝Trunk版本

最新最好的django的開發版本稱爲trunk,能夠從django的subversion處得到。 若是你想嚐鮮,或者想爲django貢獻代碼,那麼你應當安裝這個版本。

Subversion 是一種與 CVS 相似的免費開源版本控制系統,Django 開發團隊使用它管理 Django 代碼庫的更新。 你可使用 Subversion 客戶端獲取最新的 Django 源代碼,並可任什麼時候候使用 local checkout 更新本地 Django 代碼的版本,以獲取 Django 開發者所作的最近更新和改進。

請記住,即便是使用trunk版本,也是有保障的。 由於不少django的開發者在正式網站上就是用的trunk版本,他們會保證trunk版本的穩定性。

遵循如下步驟以獲取最新的 Django 主流代碼:

確保安裝了 Subversion 客戶端。 能夠從 http://subversion.tigris.org/ 免費下載該軟件,並從 http://svnbook.red-bean.com/ 獲取出色的文檔。

(若是你在使用Mac OS X 10.5或者更新的版本,你很走運,Subversion應該就能夠安裝Django。 你能夠在終端上輸入svn --version來驗證。

使用 svn co http://code.djangoproject.com/svn/django/trunk djtrunk 命令查看主體代碼。

找到你的python的site-packages目錄。 通常爲/usr/lib/python2.4/site-packages,若是你不肯定,能夠輸入以下命令:

python -c 'import sys, pprint; pprint.pprint(sys.path)'

上面的結果會包含site-packages的目錄

在site-packages目錄下,建立一個文件

django.pth,編輯這個文件,包含djtrunk目錄的全路徑 利潤,此文件包含以下行:

/home/me/code/djtrunk
  1. 將 djtrunk/django/bin 加入系統變量 PATH 中。該目錄中包含一些像 django-admin.py 之類的管理工具。 此目錄包含管理工具,例如:django-admin.py

提示:

若是以前沒有接觸過 .pth 文件,你能夠從 http://www.djangoproject.com/r/python/site-module/ 中獲取更多相關知識。

從 Subversion 完成下載並執行了前述步驟後,就沒有必要再執行 python setup.py install 了,你剛纔已經手動完成了安裝!

因爲 Django 主幹代碼的更新常常包括 bug 修正和特性添加,若是真的着迷的話,你可能每隔一小段時間就想更新一次。 在 djtrunk 目錄下運行 svn update 命令便可進行更新。 當你使用這個命令時,Subversion 會聯絡 http://code.djangoproject.com ,判斷代碼是否有更新,而後把上次更新以來的全部變更應用到本地代碼。 就這麼簡單。

最後,若是你使用trunk,你要知道使用的是哪一個trunk版本。 若是你去社區尋求幫助,或是爲Django框架提供改進,知道你使用的版本號是很是重要的。 所以,當你到社區去求助,或者爲 django 提供改進意見的時候,請時刻記住說明你正在使用的 django 的版本號。 如何知道你正在使用的 django 的版本號呢?進入`` djtrunk`` 目錄,而後鍵入 svn info ,在輸出信息中查看 Revision: (版本:) 後跟的數字。 Django在每次更新後,版本號都是遞增的,不管是修復Bug、增長特性、改進文檔或者是其餘。 在一些Django社區中,版本號甚至成爲了一種榮譽的象徵,我從[寫上很是低的版本號]開始就已經使用Djano了。

測試Django安裝

讓咱們花點時間去測試 Django 是否安裝成功,並工做良好。同時也能夠了解到一些明確的安裝後的反饋信息。 在Shell中,更換到另一個目錄(不是包含Django的目錄),而後輸入python來打開Python的交互解釋器。若是安裝成功,你應該能夠導入django模塊了:

>>> import django
>>> django.VERSION
(1, 1, 0, final', 1)

交互解釋器示例

Python 交互解釋器是命令行窗口的程序,經過它能夠交互式地編寫 Python 程序。 要啓動它只需運行 python 命令。

咱們在交互解釋器中演示Python示例將貫穿整本書。 你能夠用三個大於號 (>>> )來分辨出示例,三個大於號就表示交互提示符。 若是你要從本書中拷貝示例,請不要拷貝提示符。

在交互式解釋器中,多行聲明用三個點 (...)來填補。 例如:

>>> print """This is a
... string that spans
... three lines."""
This is a
string that spans
three lines.
>>> def my_function(value):
...     print value
>>> my_function('hello')
hello

這三個在新行開始插入的點,是Python Shell自行加入的,不屬於咱們的輸入。 可是包含它們是爲了追求解釋器的正確輸出。 若是你拷貝咱們的示例去運行,千萬別拷貝這些點。

安裝數據庫

這會兒,你可使用django寫web應用了,由於django只要求python正確安裝後就能夠跑起來了。 不過,當你想開發一個數據庫驅動的web站點時,你應當須要配置一個數據庫服務器。

若是你只想玩一下,能夠不配置數據庫,直接跳到 開始一個project 部分去,不過你要注意本書的例子都是假設你配置好了一個正常工做的數據庫。

Django支持四種數據庫:

大部分狀況下,這四種數據庫都會和Django框架很好的工做。 (一個值得注意的例外是Django的可選GIS支持,它爲PostgreSQL提供了強大的功能。)若是你不許備使用一些老舊系統,並且能夠自由的選擇 數據庫後端,咱們推薦你使用PostgreSQL,它在成本、特性、速度和穩定性方面都作的比較平衡。

設置數據庫只須要兩步:

  • 首先,你須要安裝和配置數據庫服務器自己。 這個過程超出了本書的內容,不過這四種數據庫後端在它的網站上都有豐富的文檔說明。 若是你使用的是共享主機,可能它們已經爲你設置好了。

  • 其次,你須要爲你的服務器後端安裝必要的Python庫。 這是一些容許Python鏈接數據庫的第三方代碼。 咱們會在以後的章節簡要介紹,對於某一種數據庫來講,它單獨須要安裝的東西。

若是你只是玩一下,不想安裝數據庫服務,那麼能夠考慮使用SQLite。 若是你用python2.5或更高版本的話,SQLite是惟一一個被支持的且不須要以上安裝步驟的數據庫。 它僅對你的文件系統中的單一文件讀寫數據,而且Python2.5和之後版本內建了對它的支持。

在Windows上,取得數據庫驅動程序可能會使人沮喪。 若是你急着用它,咱們建議你使用python2.5。

在 Django 中使用 PostgreSQL

使用 PostgreSQL 的話,你須要從 http://www.djangoproject.com/r/python-pgsql/ 下載 psycopg 這個開發包。 咱們建議使用psycopg2,由於它是新的,開發比較積極,且更容易安裝。 留意你所用的是 版本 1 仍是 2,稍後你會須要這項信息。

若是在 Windows 平臺上使用 PostgreSQL,能夠從 http://www.djangoproject.com/r/python-pgsql/windows/ 獲取預編譯的 psycopg 開發包的二進制文件。

若是你在用Linux,檢查你的發行版的軟件包管理系統是否提供了一套叫作python-psycopg2,psycopg2-python,python-postgresql這類名字的包。

在 Django 中使用 SQLite 3

若是你正在使用Python 2.5版本或者更高,那麼你很幸運: 不要求安裝特定的數據庫,由於Python支持和SQLite進行通訊。 向前跳到下一節。

若是你用的是Python2.4或更早的版本,你須要 SQLite 3而不是版本2,這個可從http://www.djangoproject.com/r/sqlite/pysqlitehttp://www.djangoproject.com/r/python-sqlite/ 確認一下你的pysqlite版本是2.0.3或者更高。

在 Windows 平臺上,能夠跳過單獨的 SQLite 二進制包安裝工做,由於它們已被靜態連接到 pysqlite 二進制開發包中。

若是你在用Linux,檢查你的發行版的軟件包管理系統是否提供了一套叫作python-sqlite3,sqlite-python,pysqlite這類名字的包。

在 Django 中使用 MySQL

django要求MySQL4.0或更高的版本。 3.X 版本不支持嵌套子查詢和一些其它至關標準的SQL語句。

你還須要從 http://www.djangoproject.com/r/python-mysql/ 下載安裝 MySQLdb 。

若是你正在使用Linux,檢查下你係統的包管理器是否提供了叫作python-mysql,python-mysqldb,myspl-python或者類似的包。

在Django中使用Oracle數據庫

django須要Oracle9i或更高版本。

若是你用Oracle,你須要安裝cx_Oracle庫,能夠從http://cx-oracle.sourceforge.net/得到。 要用4.3.1或更高版本,但要避開5.0,這是由於這個版本的驅動有bug。

使用無數據庫支持的 Django

正如以前說起過的,Django 並非非得要數據庫才能夠運行。 若是隻用它提供一些不涉及數據庫的動態頁面服務,也一樣能夠完美運行。

儘管如此,仍是要記住:

Django 所捆綁的一些附加工具 必定 須要數據庫,所以若是選擇不使用數據庫,你將不能使用那些功能。 (咱們將在本書中自始至終強調這些功能)

開始一個項目

一但你安裝好了python,django和(可選的)數據庫及相關庫,你就能夠經過建立一個project,邁出開發django應用的第一步。

項目 是 Django 實例的一系列設置的集合,它包括數據庫配置、Django 特定選項以及應用程序的特定設置。

若是第一次使用 Django,必須進行一些初始化設置工做。 新建一個工做目錄,例如 /home/username/djcode/ ,而後進入該目錄。

這個目錄應該放哪兒?

有過 PHP 編程背景的話,你可能習慣於將代碼都放在 Web 服務器的文檔根目錄 (例如 /var/www 這樣的地方)。 而在 Django 中,把任何Python代碼和web server的文檔根(root)放在一塊兒並非一個好主意。由於這樣作有令人能經過網路看到你原代碼的風險. 那就太糟了。

把代碼放置在文檔根目錄 以外 的某些目錄中。

轉到你建立的目錄,運行命令django-admin.py startproject mysite。這樣會在你的當前目錄下建立一個目錄。mysite

注意

若是用的是 setup.py 工具安裝的 Django , django-admin.py 應該已被加入了系統路徑中。

若是你使用一個trunk版本,你會在 djtrunk/django/bin 下發現 django-admin.py 。你未來會經常使用到django-admin.py,考慮把它加到你的系統路徑中去比較好。 在Unix中, 你也能夠用來自/usr/local/bin 的符號鏈接, 用一個命令, 諸如sudo ln -s /path/to/django/bin/django-admin.py /usr/local/bin/django-admin.py . 在Windows中, 你須要修改你的 PATH 環境變量.

若是你的django是從linux發行版中安裝的,那麼,常會被django-admin.py替代。django-admin

若是在運行時,你看到權限拒絕的提示,你應當修改這個文件的權限。django-admin.py startproject 爲此, 鍵入 cd /usr/local/bin轉到django-admin.py所在的目錄,運行命令chmod +x django-admin.py

startproject 命令建立一個目錄,包含4個文件:

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

文件以下:

  • __init__.py :讓 Python 把該目錄當成一個開發包 (即一組模塊)所需的文件。 這是一個空文件,通常你不須要修改它。

  • manage.py :一種命令行工具,容許你以多種方式與該 Django 項目進行交互。 鍵入python manage.py help,看一下它能作什麼。 你應當不須要編輯這個文件;在這個目錄下生成它純是爲了方便。

  • settings.py :該 Django 項目的設置或配置。 查看並理解這個文件中可用的設置類型及其默認值。

  • urls.py:Django項目的URL設置。 可視其爲你的django網站的目錄。 目前,它是空的。

儘管這些的文件很小,但這些文件已經構成了一個可運行的Django應用。

運行開發服務器

爲了安裝後更多的體驗,讓咱們運行一下django開發服務器看看咱們的準系統。

django開發服務是可用在開發期間的,一個內建的,輕量的web服務。 咱們提供這個服務器是爲了讓你快速開發站點,也就是說在準備發佈產品以前,無需進行產品級 Web 服務器(好比 Apache)的配置工做。 開發服務器監測你的代碼並自動加載它,這樣你會很容易修改代碼而不用重啓動服務。

若是你還沒啓動服務器的話,請切換到你的項目目錄裏 (cd mysite ),運行下面的命令:

python manage.py runserver

你會看到些像這樣的

Validating models...
0 errors found.

Django version 1.0, using settings 'mysite.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

這將會在端口8000啓動一個本地服務器, 而且只能從你的這臺電腦鏈接和訪問。 既然服務器已經運行起來了,如今用網頁瀏覽器訪問 http://127.0.0.1:8000/ 。 你應該能夠看到一個使人賞心悅目的淡藍色Django歡迎頁面。 它開始工做了。

在進一步學習以前, 一個重要的,關於開發網絡服務器的提示很值得一說。 雖然 django 自帶的這個 web 服務器對於開發很方便,可是,千萬不要在正式的應用佈署環境中使用它。 在同一時間,該服務器只能可靠地處理一次單個請求,而且沒有進行任何類型的安全審計。 發佈站點前,請參閱第 20 章瞭解如何部署 Django 。

更改這個 Development Server 的主機地址或端口

默認狀況下, runserver 命令在 8000 端口啓動開發服務器,且僅監聽本地鏈接。 要想要更改服務器端口的話,可將端口做爲命令行參數傳入:

python manage.py runserver 8080

經過指定一個 IP 地址,你能夠告訴服務器–容許非本地鏈接訪問。 若是你想和其餘開發人員共享同一開發站點的話,該功能特別有用。 `` 0.0.0.0`` 這個 IP 地址,告訴服務器去偵放任意的網絡接口。

python manage.py runserver 0.0.0.0:8000

完成這些設置後,你本地網絡中的其它計算機就能夠在瀏覽器中訪問你的 IP 地址了。好比: http://192.168.1.103:8000/ . (注意,你將須要校閱一下你的網絡配置來決定你在本地網絡中的IP 地址) Unix用戶能夠在命令提示符中輸入ifconfig來獲取以上信息。 使用Windows的用戶,請嘗試使用 ipconfig 命令。

接下來作什麼?

好了,你已經安裝好所需的一切, 而且開發服務器也運行起來了,你已經準備好繼續 學習基礎知識–用Django伺候網頁 這一章的內容了。

相關文章
相關標籤/搜索