Django 1.6在Windows平台下的配置


Django 1.6 在Windows平台下的配置

前言

最近兩天研究了下Django1.6在Windows平台中的配置安裝,服務器采用Apache。期間遇到過許多新手所遇到的各種問題,也算是一種寶貴經歷,問題原因主要是關於新版Django靜態文件的配置問題,尤其是media和static兩種文件的混淆。網上很多教程都是基於比較老的版本所寫,導致配置思路有差異,最有價值的內容當屬Django官網的參考資料,值得細讀。

配置環境

Python:2.7.6

Apache: 2.2

Django: 1.6

OS: windows 7

目錄

Python 安裝


Python軟件安裝

Python官網下載相應Win32版本的即可,我的是2.7.6。關於Python版本的選擇在網上有很多介紹,因為3.X以上版本很多模塊不支持,所以最好選擇2.X安裝。下載完后直接點擊安裝,至於安裝路徑可選擇默認也可自定義。建議是最好不要放在類似Program Files的文件夾中,直接放在C盤或其它盤根目錄下。因為我在用Mingw32創建Django工程時,安裝在此路徑下的python會出現C:\program: bad interpreter錯誤,也可能是自己未配置好的原因。軟件安裝好后將python安裝目錄添加到環境變量PATH

Python包安裝

由於安裝Django我使用的是Pip安裝,所以在此先安裝Pip包,我一般選擇國內的安裝源,不僅速度快且穩定,上面基本上囊括了PyPi的所有包,很方便。找到PIP相應的目錄選擇相應的版本,點擊下載即可,然后將目錄解壓,進入目錄執行如下命令安裝。

python setup.py install

安裝好后,需要將[python安裝目錄]/Scripts路徑添加到環境變量,以便在任何地方使用。

Apache安裝

目前用得最廣的版本是2.2,直接到Apache官網下載即可。關於是否安裝Apache還是Nginx的問題,網上有相關介紹,各有優勢,不在此贅述。

Django 安裝


Django下載

進入命令行,可以是Windows CMD, 我用的是Mingw32,執行如下命令:

$ pip install django -i http://e.pypi.python.org/simple/

命令中指定下載安裝源。安裝好后會在Python安裝目錄中的Lib/Site-packages/路徑下生成Django目錄,同時會為在Python安裝目錄下的Scripts/目錄中產生django-admin.py文件,此文件就是我們需要用來創建Django工程和應用的主文件,需要詳細了解。安裝好后需要測試是否安裝成功,進入Python Shell環境,執行import django命令,如果未出現錯誤說明Django安裝成功。

Mod_WSGI配置

下載mod_wsgi.so文件,並配置mod_wsgi模塊, 找到Apache安裝目錄下Conf/httpd.conf,在LoadModule處添加如下語句:

LoadModule wsgi_module modules/mod_wsgi.so

Django工程創建


創建工程

Django工程的創建利用django-admin.py進行,在相應的目錄執行如下命令即可創建一個Django工程:

django-admin.py startproject zend

其中,zend是工程名。工程創建好之后,架構如下所示:

zend  #項目名稱
|
--zend #項目子文件夾
|
----__init__.py  #項目初始化文件
    |
----settings.py  #項目配置文件
    |
----urls.py      #項目鏈接管理文件
    |
----wsgi.py      #wsgi配置文件
|
--manage.py     #項目管理文件,執行各種操作,如內置服務器啟動,數據庫表管理等

在下面將以此工程進行介紹。

Settings.py設置

此文件很關鍵,設置不對無法訪問Django項目,設置涉及幾個方面,主要字段有:

INSTALLED_APPS  #關於APP方面的設置,如自己創建的APP
DATABASES       #數據庫方面設置,mysql,sqlite3,oracle
STATICFILES_DIR #靜態文件目錄設置
TEMPLATE_DIRS   #模板文件目錄設置

INSTALLED_APPS字段主要涉及所創建的APP,其中最為關鍵的一點是關於django.contrib.staticfiles的設置,此處需添加上,這一步很關鍵。

DATABASES字段,我設置的是Mysql,所以最后配置如下:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',#mysql engine
        'NAME':'zend',  #database name
        'USER':'root', #database user
        'PASSWORD':'xxx', #database password
        'HOST':'',  #主機名
        'PORT':'',  #訪問端口
    }
}

在配置之前,需要創建數據庫zend

STATICFILES_DIR字段,主要用來配置靜態文件目錄,當項目運行時,通過此目錄找到相應的靜態配置文件,如css,js,images等。配置如下:

STATIC_URL = '/static/'
STATICFILES_DIRS=(os.path.join(BASE_DIR,"static"),)

TEMPLATE_DIRS字段,主要用來配置模板文件目錄。配置如下: TEMPLATE_DIRS=( os.path.join(BASE_DIR,'templates'),)

配置STATICFILES_DIRS和TEMPLATE_DIRS需要在zend工程目錄下創建static和templates文件夾,在apache配置時還提及media,所以同時創建media文件夾。同時最關鍵的是static文件夾的內容。如果在Apache中指定的static目錄是工程目錄下的static目錄,則執行如下命令后會把site-packages/django/contrib/admin/static/下的內容拷貝到工程目錄中的static文件夾中:

python manage.py collectstatic

我是按照此方法來設置靜態文件的。所以下面Apache的配置也是根據此目錄來設置。

wsgi.py設置

此文件是關於創建工程后的解析設置,文件內容如下:

import os,sys
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "zend.settings")
sys.path.append(r'D:/www/django/zend') #工程路徑
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

Apache配置

此步驟是花時間比較多的步驟,一開始查閱網上資料說的都很亂,有的是Django版本不對,有的是Apache配置本身不對。最后靜下心查看官網的關於Apache的配置文章才有所領悟。按照此文章的介紹,我整理了下我的配置思路,我主要是用虛擬目錄方式來配置,區別就是我把WSGIScriptAlias語句放在了虛擬目錄配置文件httpd-vhost.conf中,而常規的話是放在httpd.conf中。

首先,把httpd.conf文件中的Include conf/extra/httpd-vhosts.conf去掉注釋,以便在虛擬目錄配置文件中進行Django配置。

其次,打開conf/extra/httpd-vhosts.conf文件,進行如下配置:

<VirtualHost *:80>
DocumentRoot "D:/www/django/zend"
ServerName localhost
AliasMatch ^/([^/]*\.css) "d:/www/django/zend/static/styles/$1
Alias /media/ "d:/www/django/zend/media/"
Alias /static/ "d:/www/django/zend/static/"
<Directory "D:/www/django/zend/static">
    Order deny,allow
    Allow from all
</Directory>
<Directory "D:/www/django/zend/media">
    Order deny,allow
    Allow from all
</Directory>

WSGIScriptAlias / "d:/www/django/zend/zend/wsgi.py"

<Directory "D:/www/django/zend/zend">
<Files wsgi.py>     
    Order Deny,Allow
    Allow from all
</Files>
</Directory>
</VirtualHost>

測試工程

如果用Django內置服務器的話,進入工程目錄,直接執行以下命令:

python manage.py runserver [port] #port可省略,默認為8000

在瀏覽器中輸入localhost即可,如果出現It works等字眼,說明django配置成功。

如果用Apache的話,先啟動apahce服務,然后輸入localhost如果出現上述字眼,表明apache配置成功。

總結

此文檔主要是為記錄安裝過程所寫,以備后忘,在配置過程中,遇到很多問題,從網上也找到一些資料參考,收獲還是很多的。


免責聲明!

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



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