1. 程式人生 > >在Windows上搭建Django+python+apache+wsgi

在Windows上搭建Django+python+apache+wsgi

首先要注意一下,windows是32位還是64位,64位下安裝wsgi難度還是比較大,主要是網上的wsgi模組基本上都是32位系統下編譯的,在64位系統下不能使用,自己編譯的話難度就直線上升了。順便說一句,真的要編譯,還不如使用Linux,簡單又方便。
下面的操作都是基於x86(32位)windows系統。

1、安裝python
python選用2.7版。雖然最高版本已經到了3.5了,但一方面python2和python3還是有相容性問題,另一方面,很多第三方軟體更新沒這麼快,所以,在學習的角度下,還是選2.7吧。
這一步很簡單,直接雙擊執行python的安裝程式,按照嚮導一路next即可。在路徑方面建議設定一個比較好找的目錄(別忘了設定環境變數, Path中新增;%PYTHON_HOME%;)

2、安裝PIL
下載主頁:http://www.pythonware.com/products/pil/ 。
PIL是Python Imaging Library縮寫,主要用來處理圖片用的,這裡安裝它是為了在Django系統中用它來對上傳的圖片自動的生成縮圖的。安裝方法也相當的簡單,直接雙擊執行PIL-1.1.7.win32-py2.7.exe 這個檔案,然後一路next即可。因為之前已經安裝好了python,所以PIL的安裝程式會從登錄檔中讀取到python安裝的路經,然後就自動地把PIL安裝到python\lib\site-packages\PIL下面了。


3、安裝Django
解壓到一個目錄裡,例如C:\Django-1.10.1下面。
接下來就是安裝Django了。輸入python setup.py install,這個命令將會把Django安裝到site-package下面並同時設定好sys.path。
在系統PATH中加入以下路徑:C:\Python27\Lib\site-packages\Django-1.10.1-py2.7.egg\django\bin。根據版本不同,路徑名稱稍有不同。這是為了能直接使用django-admin.py來進行Django專案管理。

第一個工程的建立
假設工程專案在D:\WWW下,則執行下面命令生成工程框架:
D:\WWW>django-admin.py startproject my_python
D:\WWW\my_python>執行開發伺服器:
python manage.py runserver
預設開發伺服器埠為8000,則輸入網址 http://127.0.0.1:8000 就可以開啟第一個django專案主頁了。

4、安裝apache
現在apache在主頁上沒有直接提供二進位制安裝包,需要下載第三方編譯包。點選主頁上Files for Microsoft Windows連結後,進入Using Apache HTTP Server on Microsoft Windows頁,這裡我選擇了第一個ApacheHaus。
接下來又要選擇了,有多種編譯包,有VC2008(VC9)、VC2010(VC10)、VC2015(VC14)等,因為我使用的是python2.7,而且伺服器系統為win2003 32位,為了相容性,我選擇了Apache 2.4.x VC9 x86版。
下載後直接解壓到C:/Apache24下就行了。
然後修改httpd.conf檔案,加入        LoadModule wsgi_module modules/mod_wsgi.so
WSGIScriptAlias /mypython D:/WWW/my_python/my_python/wsgi.py(第三步所生成的工程中的檔案,查詢到,寫對路徑)
WSGIPythonPath D:/WWW/my_python(第三步生成的工程的目錄)
<Directory "D:/WWW/my_python/my_python">
    Options FollowSymlinks
    AllowOverride none
    Require all granted
</Directory>
這裡我要提一下,apache24與apache22配置有一些不同,原來的Order deny,allow已經被Require all granted代替,網上有一些配置說明都是基於apache22的,直接使用在apache24中會有錯。

5、安裝mod_wsgi
下載:http://www.lfd.uci.edu/~gohlke/pythonlibs/    搜尋wsgi,對應好python版本。
或者直接下載https://github.com/GrahamDumpleton/mod_wsgi/releases/download/4.4.12/mod_wsgi-windows-4.4.12.tar.gz 。
這裡對應的版本為:apache24 python27 win32 VC9。
將mod_wsgi-py27-VC9.so改名為mod_wsgi 放到apache的modules下即可

6、mysql-python模組安裝
開發專案總歸要用資料庫的,比如說MySQL,需要下載mysql-python模組,地址:https://pypi.python.org/pypi/MySQL-python/1.2.4 。這個軟體只支援MySQL-3.23 through 5.5 and Python-2.4 through 2.7。
編譯好的二進位制包只有for python2.7 x86版本。windows下使用開源軟體就是這麼辛苦。
安裝後,進入python命令列,執行 import MySQLdb ,不出錯就是正確。

7、編寫專案程式碼
在D:/WWW/my_python/my_python下
編寫views.py
from django.http import HttpResponse,Http404
import datetime
def hello(req):
    return HttpResponse("<h1>Hello World!</h1>")
def homepage(req):
    return HttpResponse("This is mypython's Homepage")
    
修改urls.py
from django.conf.urls import url
from django.contrib import admin
from phinfo.views import hello,homepage
urlpatterns = [
    url(r'^hello/$', hello),
    url(r'^$', homepage),
]

啟動apache後,http://127.0.0.1/mypython/ 顯示home頁面,http://127.0.0.1/mypython/hello 顯示helloworld頁面。