Python的Django的配置過程

安裝 Python

作爲一個 Python 的 Web 框架, 使用 Django 前需要先安裝 Python 。

在 Python 2.4 至 2.7 版本下,Django 都可以使用。(由於 Python 3.0 是不向後兼容 的,所以 Django 目前無法在 Python 3.0 下使用;更多關於支持的 Python 版本和 3.0 遷移的內容,參見 Django FAQ 。)

在 http://www.python.org 可以得到 Python 。如果你的操作系統是 Linux 或 Mac OS X ,那麼可能 Python 已經安裝在系統中了。

Django on Jython

如果你使用 Jython (一個 Java 平臺上的 Python 實現),你將要做一些額外的 步驟。詳見 Running Django on Jython 。

安裝 Apache 和 mod_wsgi

如果你只是想體驗一下 Django ,那麼請跳過本節直接閱讀下一節。因爲 Django 本身 包含一個可用於測試的輕型 Web 服務器,所以在你要把 Django 部署到生產環境之前你 不需要安裝 Apache 。

如果你想在生產環境下使用 Django ,那麼請使用帶有 mod_wsgi 的 Apache 。 mod_wsgi 可以在兩種模式之下工作,一種模式是內嵌模式,另一種是守護進程模式。在 內嵌模式下, mod_wsgi 與 mod_perl 類似,它把 Python 嵌入 Apache 並且在服務器 啓動時把 Python 代碼載入內存。在 Apache 進程的生存週期內,代碼始終留在內存內, 相比其他方式,這樣可以獲得顯著的性能提升。在守護進程模式下, mod_wsgi 產生一個 處理請求的獨立守護進程。這個守護進程可以與 Web 服務使用不同用戶運行,這樣可能 可以提高安全性。並且可以在不重啓 Apache Web 服務的情況下重啓守護進程,便於無縫 更新代碼。請查閱 mod_wsgi 文檔來決定使用哪種模式。請確保 Apache 已安裝,並且 mod_wsgi 模塊是可用的。 Django 可以在支持 mod_wsgi 的任何版本 Apache 下工作。

安裝完 mod_wsgi 後如何配置 mod_wsgi ,請參考 See 如何通過 mod_wsgi 使用 Django 。

如果因爲某種原因你無法使用 mod_wsgi ,不用擔心。 Django 支持其他多種部署方式。 另一個選擇是 FastCGI ,可以在非 Apache 服務器完美使用 Django。另外 Django 遵循 WSGI 標準,可以運行於多種不同 的服務器平臺。相應平臺的安裝方法參見 在多種平臺安裝 Django 。

讓你的數據庫運行起來

如果你要使用 Django 數據庫 API ,那麼先要讓你的數據庫運行起來。 Django 支持 多種不同的數據庫並且官方支持PostgreSQL 、 MySQL 、 Oracle 和 SQLite (雖然 SQLite 不需要運行一個獨立的服務)。

除了官方支持的數據庫外,還有一些可通過第三方軟件支持的數據庫:

但是這些第三方支持的 Django 的版本和 ORM 功能差別很大。如果你對這些第三方支持的 功能或品質有疑問的話,請直接向這些第三方項目提問。

所了讓數據庫運行外,你還要確定安裝好這些數據庫相應的 Python 庫。

  • 如果你使用 PostgreSQL ,你需要 psycopg 包。 Django 既支持版本 1 也支持版本 2 。(當你定義 Django 的數據庫層時,可以定義 postgresql [用於版本 1 ], 也可以定義 postgresql_psycopg2 [用於版本 2] 。)關於這種數據庫的更深層的 技術細節你可能需要參考 PostgreSQL notes 。

    如果你使用 Windows ,可以試試非官方的 編輯好的 Windows 版本 。

  • 如果你使用 MySQL ,你需要 1.2.1p2 或更高版本的 MySQLdb 。同時你還要讀一下 關於 MySQL 數據庫的注意點 。

  • 如果你使用 SQLite 並且使用 Python 2.4 ,你需要 2.0.3 或更高版本的 pysqlite 。 Python 2.5 把 SQLite 作爲標準模塊內置了,所以就不需要安裝其他 額外的東西了。請參閱 SQLite 數據庫注意點 。

  • 如果你使用 Oracle ,你需要 cx_Oracle 。但請先閱讀, Oracle 數據庫 的注意事項,重點了解支持的 Oracle 和cx_Oracle 的版本。

  • 如果你使用一個非官方支持的數據庫,請閱讀相關文檔,瞭解額外的需求。

如果你計劃使用 Django 的 manage.py syncdb 命令來自動創建數據庫的表,請先 確定在你的數據庫中 Django 擁有創建和改變表的權限。如果你計劃手動創建表,那麼 Django 只要有 SELECT 、 INSERT 、 UPDATE 和 DELETE 權限就可以 了。在一些數據庫中, Django 在執行 syncdb 時需要 ALTER TABLE 權限,但是 創建完表以後就不需要了。

如果你使用 Django 的 測試框架 來測試數據庫查詢,那麼 Django 需要創建測試數據庫的權限。

刪除任何舊版本的 Django

如果你是升級 Django ,那麼安裝前應當先刪除舊版本的 Django 。

如果你以前使用 setup.py install 安裝 Django ,那麼刪除舊版本就非常簡單—— 只要刪除你的 Python 目錄下site-packages 中的 django 目錄就可以了。

如果你是以 Python egg 方式安裝的 Django ,那麼請刪除 Django 的 .egg 文件, 並移除 easy-install.pth 文件中相應的 egg 引用。這個文件同樣在你的 site-packages 目錄中。

我的 site-packages 在哪裏?

site-packages 目錄的位置根據操作系統的不同而不同。它位於 Python 的安裝 目錄下。以下命令可以找到你的 site-packages 目錄位置:

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

(注意,這個命令應當在終端命令行下執行,而不是在一個 Python 交互命令行下 執行。)

安裝 Django

用於安裝的 Django 代碼一般有三種:特定發行包、最新官方包和最新開發版本。三種 代碼的安裝方法有少許不同。

但是,不管哪種都是容易安裝的。

安裝特定發行包

請查看 特定發行說明 中是否提供你的平臺(發行版本) 下的官方 Django 包(安裝器)。特定發行包通常會自動安裝相關依賴的庫並更新路徑。

安裝官方發行版本

  1. 從我們的 下載頁面 下載最新版本。
  2. 解壓縮下載的文件(文件名形如 tar xzvf Django-NNN.tar.gz ,其中的 NNN 表示版本號)。你如果使用的操作系統是 windows ,那麼你可以下載 命令行工具 bsdtar 或使用 7-zip 之類的圖形界面工具來解壓縮文件。
  3. 進入上個步驟所創建的目錄(如 cd Django-NNN )。
  4. 如果你使用的是 Linux 、 Mac OS X 或其他類 Unix 操作系統,那麼在終端中 輸入命令:sudo python setup.py install 。如果你使用的是 Windows 操作系統,那麼以管理員身份打開的一個命令窗口,運行 setup.py install 。

以上命令會把 Django 安裝到你的 Python 安裝目錄中的 site-packages 目錄中。

安裝最新開發版本

追蹤 Django 開發

如果你決定使用 Django 的最新開發版本,那麼你需要關心 開發進度 和 向後 兼容變化列表 。這樣你才能掌握最新的功能和升級時變動相應的代碼。(對於官方 發行版本來說,所有必要的內容都寫在發行說明中。)

如果你想因爲缺陷改進和功能提升而升級你的 Django ,可按以下步驟操作:

  1. 確認你已經安裝了 Subversion ,並且可以在命令行下運行。(在命令行下運行 svn help 可以測試這個。)

  2. 通過如下命令檢出 Django 的主開發分支( 'trunk' ):

    svn co http://code.djangoproject.com/svn/django/trunk/ django-trunk
    
  3. 接下來,確認 Python 解釋器可以載入 Django 代碼。最方便的方法是 修改 Python 的搜索路徑 。把一個包含django-trunk 路徑的 .pth 文件 到你係統的 site-packages 目錄。例如在一個類 Unix 系統中可以

    echo WORKING-DIR/django-trunk > SITE-PACKAGES-DIR/django.pth
    

    (在上面的命令中,把 SITE-PACKAGES-DIR 替換爲你係統的 site-packages 目錄,即前文 我的 site-packages 在哪裏? 一節 中提到的目錄。把 WORKING-DIR/django-trunk 變爲你的新 django-trunk 路徑。)

  4. 在類 Unix 系統中,在系統路徑所包含的目錄(如 /usr/local/bin )下創建一個 指向django-trunk/django/bin/django-admin.py 文件的符號鏈接。例如:

    ln -s WORKING-DIR/django-trunk/django/bin/django-admin.py /usr/local/bin
    

    (在上面代碼中,把 WORKING-DIR 變爲你的新 django-trunk 路徑。)

    這樣便於你在任何目錄下都可以運行 django-admin.py ,而不用輸入完整的路徑。

    在 Windows 系統中,如果要實現同樣目的,那麼要把 django-trunk/django/bin/django-admin.py 文件複製到系統路徑所包含的目錄中, 例如 C:\Python24\Scripts 。

你 不必 運行 python setup.py install ,因爲在第 3 步和第 4 步中你所做的 操作相當於運行了這個命令。

當你想要升級 Django 的源代碼時,只要在 django-trunk 目錄中運行 svn update 命令就行了。這個命令會自動下載任何更新的內容。


Django mod_wsgi 配置


這幾天花了點時間學習把Django開發好的項目部署到Apache上,感覺官方的一些文檔說得很不清楚,花了我比較多的時間,這裏把我自己配置的過程說一下。注意一下,我這裏的配置的環境是Windows,版本情況:Apache 2.2,Django 1.1,Mod_wsgi 3.1,Python 2.6。不同版本的配置方法大同小異。

 

  一、演示環境

  這裏假設您的Django和Apache已經安裝好,並且Django的工程已經開發好。下面是我自己的相關目錄位置,您需要參照您的實際目錄。

  • 我這裏Apache安裝在 C:\Program Files\Apache Software Foundation\Apache2.2 。
  • 我的工程的目錄是 D:\WorkSpace\DjangoProject\FirstProject,工程名稱叫 FirstProject 。

 

  二、下載mod_wsgi文件

  mod_wsgi可以去http://code.google.com/p/modwsgi/downloads/list這裏下載,選擇您需要的版本,下載下來後,是一個名字爲mod_wsgi*****.os的一個文件。把這個文件重命名爲mod_wsgi.os,然後放到Apache的moduls目錄下目錄下,對於我這裏的情況,就是放到 C:\Program Files\Apache Software Foundation\Apache2.2\modules 這個目錄下。放到這個目錄下後,就算安裝完畢了。

 

注意,不同版本的的mod_wsgi對於python的版本是有要求的,比如這裏的mode_wsgi 3.1 就需要python 2.6+的相關版本。如果用python 2.5及以下的版本,就算配置好了,也無法啓動Apache,而在EventViewer裏面可以查看Apache給出的錯誤信息,大概如下:
  "httpd.exe: Syntax error on line 128 of C:/data/apache/conf/httpd.conf: Cannot load C:/data/apache/modules/mod_wsgi.so into server: The specified module could not be found.     . "

 

  三、配置

  首先需要去更改Apache的httpd.conf(C:\Program Files\Apache Software Foundation\Apache2.2\conf目錄下)配置文件:

  1)在配置文件中LoadModule的那一段,添加一行如下:

    LoadModule wsgi_module modules/mod_wsgi.so

 

  2)然後再添加一行如下:

    WSGIScriptAlias / "D:/WorkSpace/DjangoProject/FirstProject/django.wsgi"

  注意上面的目錄D:/WorkSpace/DjangoProject/FirstProject,這個就是您的工程的目錄,需要根據的實際情況做修改。後面的django.wsgi這個文件是需要新建的,後面我再來說這個如何新建這個文件。

 

  3)找到Directory的配置區域,添加如下的一段配置

    <Directory "D:/WorkSpace/DjangoProject/FirstProject">
      Order Deny,Allow
      Allow from all
    </Directory>

  注意,上面的目錄,這個同上面的一樣,是您的工程的目錄,根據您的實際情況做修改。

 

  4)新建一個wsgi文件。

    在工程的目錄下新建一個django.wsgi,用記事本打開,輸入以下的內容並保存: 

      import os
      import sys

      import django.core.handlers.wsgi

      sys.path.append(r'D:\WorkSpace\DjangoProject')
      os.environ['DJANGO_SETTINGS_MODULE'] = 'FirstProject.settings'
      application = django.core.handlers.wsgi.WSGIHandler()

    解釋一下第4、5兩行:

    第四行中的 D:/WorkSpace/DjangoProject 是您的工程目錄D:/WorkSpace/DjangoProject/FirstProject 的上一層目錄。根據您工程的目錄情況做修改。

    第五行 os.environ['DJANGO_SETTINGS_MODULE'] = 'FirstProject.settings' ,這個FirstProject.settings就是指您的工程目錄下的setting文件,根據您的工程目錄名稱的不同需要做修改。

    最後,這個django.wsgi文件名可以隨便取,例如test.wsgi、app.wsgi等等,但是一定要與2) 中的那行配置保持一致。如果您這裏新建的文件名不是django.wsgi而是test.wsgi,那麼2) 中的那行配置就應該修改爲:WSGIScriptAlias / "D:/WorkSpace/DjangoProject/FirstProject/django.wsgi"。

 

  5)最後修改項目的setting.py文件。

  找到您工程目錄下的setting.py,對於我這裏就是D:\WorkSpace\DjangoProject\FirstProject\setting.py。找到其中的TEMPLATE_DIRS,默認爲:

    TEMPLATE_DIRS = ("Template",)

  修改爲如下:

    TEMPLATE_DIRS = ("D:\WorkSpace\DjangoProject\FirstProject",)

   這個D:\WorkSpace\DjangoProject\FirstProject就是您的工程目錄,根據您的實際情況做相應的修改。到這裏,整個配置就基本完成了。

 

  四、其它信息

    這個是關於mod_wsgi實現的一些配置命令的詳細解釋:http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives,例如我們之前配置中的WSGIScriptAlias到底是一個什麼意思等,需要的時候可以做一個參考。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章