轉自:http://blog.delai.me/2010/08/mc-django-mysql-python.html
最近需要用django做個內部網站,在Mac下搭了個開發環境,由於Mac方面資料不多,前前后后折騰了一個下午才搞定。總結一下,按照下面的步驟安裝一定OK。
原有環境:
Mac Snow Leopard 10.6.4, 系統自帶的Python 2.6。
一、XAMPP
它包含了MySQL,PHP等東西,綠色軟件,好處是,部署簡單,更新方便。具體中文介紹看這里
下載安裝很簡單到只要移動一下鼠標,看這里:
這是個綠色軟件,事實上就是一個叫XAMPP的文件夾,我把它放在了/Application 里面,如果要卸載,把/Application/XAMPP卸載即可。
我安裝的是1.7.3版本
二、Python
系統自帶的2.6版本。但默認是位模式的,為了和XAMPP里32位的mysql配合,需要將其改成32位模式:在shell里執行下面代碼:
defaults write com.apple.versioner.python Prefer-32-Bit -bool yes
三、Mysql
1)如果XAMPP的目錄里沒有include文件夾(里面有mysql的一些頭文件),需要將32位源碼安裝包里的include文件夾放到XAMPP的目錄里,如/Applications/XAMPP/xamppfiles。可以從這里下載源碼安裝包,選Mac OS X ver. 10.6 (x86, 32-bit), Compressed TAR Archive 下載。
2)修改PATH, 把/Applications/XAMPP/xamppfiles/bin添加到PATH里面,這樣shell里就能使用mysql命令了
我安裝的是1.7.3版本
四、MySQLdb for Python (讓python能使用mysql)
1)這是Python和MySQL的連接模塊。這里下載 。解壓后一次執行一下命令:
sudo python setup.py clean
sudo python setup.py build
sudo python setup.py install
2)測試:shell里輸入python打開python命令行,輸入import MySQLdb回車,如無任何輸出,說明安裝成功
我安裝的是1.2.3版本
五、Django
安裝下載很簡單,看這里
我安裝的是1.2.1版本
判斷是否安裝成功:
按照官方指南 part one部分做下來,如果沒出現什么錯誤,說明安裝成功了。
六、Django用Apache作為web服務器
以下內容假設前提是你已經跟着django官方指南 part 1 到 part 4做過一遍了,對django有個大概的了解了,針對的是Mac,其他平台也是類似的,這年頭裝逼的軟件都喜歡玩跨平台的。
1)MOD_WSGI (讓Python(Django)能使用Apache作為web服務器)
1. Downloaded and installed Xcode.
2. Download and unpack mod_wsgi-2.6.tar.gz
3. Terminal “make distclean”
4. Terminal “./configure
5. Terminal “make”
6. Terminal “sudo make install”
7. edit “/Applications/XAMPP/xamppfiles/etc/httpd.conf” add lines below
#add python support
LoadModule wsgi_module modules/mod_wsgi.so
AddType text/html .py
#information about the xxx setting profile
WSGIScriptAlias /xxx /Applications/XAMPP/xamppfiles/django.wsgi
<Directory /Applications/XAMPP/xamppfiles>
Order deny,allow
Allow from all
</Directory>
8. 在/Applications/XAMPP/xamppfiles/添加一個文件 文件名:django.wsgi 如下內容:
import os
import sys
sys.path.append(‘/Users/arthasshih/python/django_pro’)
os.environ['DJANGO_SETTINGS_MODULE'] = ‘xxx.settings’
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
這是我的配置,需要修改的是xxx.settings(xxx是django工程的名字) 和 /Users/arthasshih/python/django_pro(這個是django工程xxx所在的目錄) 具體看 這里 和 這里 和 這里
這樣,就可以直接使用http://localhost/xxx來登錄這個django網站了,由Apache來handle訪問流量,而不需要使用manage.py runserver,比較這玩意兒只是簡易的web服務器,用於測試可以,用來做對外服務是不行的。
2)使用靜態文件
對於css, image, js等外部元素,Django不會對其進行直接管理的,官方的簡易是,把這些靜態文件與Django隔離開來(打網站確實都是這么做的),以保持Django內部邏輯的一致性。對於單機環境,可以利用Apache搞個目錄或domain專門放這類文件,在html頁面的head里直接引用即可,跟Django沒關系。
1. edit “/Applications/XAMPP/xamppfiles/etc/httpd.conf” add lines below
#total media location like css js image
Alias /media/ “/Users/arthasshih/python/django_pro/media/”
<Directory “/Users/arthasshih/python/django_pro/media/”>
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
里面有些部分需要修改成你自己的配置。
這樣,你就可以把各種靜態文件放到/Users/arthasshih/python/django_pro/media/下面,比如media下有style.css文件。在django的html頁面文件里head部分加入
<link rel=”Stylesheet” href=”/medit/style.css” type=”text/css”/>
即可。這里/media對應的就是http://localhost/media/,實際指向/Users/arthasshih/python/django_pro/media/
3)解決Django admin頁面顯示不正常的情況
由於使用了Apache,可能會導致后台admini打開來顯示不正常,具體表現就是沒有正確加載css文件。修改Apache配置把他需要的路徑選擇好就可以了。可以舉一反三。
編輯加入
#media location for django admin
Alias /admin_media “/Library/Python/2.6/site-packages/django/contrib/admin/media”
<Directory “/Library/Python/2.6/site-packages/django/contrib/admin/media”>
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
這樣,就有了個http://localhost/admin_media指向django admin的css等文件所在位置。
然后在工程的setting.py文件里配置一下這一信息即可:修改其中的
ADMIN_MEDIA_PREFIX = ‘/admin_media/’
這樣,django admin這個app就知道從http://localhost/admin_media下面加載需要的css文件了。
#total media location like css js image
Alias /media/ “/Users/arthasshih/python/django_pro/media/”
<Directory “/Users/arthasshih/python/django_pro/media/”>
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
里面有些部分需要修改成你自己的配置。
這樣,你就可以把各種靜態文件放到/Users/arthasshih/python/django_pro/media/下面,比如media下有style.css文件。在django的html頁面文件里head部分加入
<link rel=”Stylesheet” href=”/medit/style.css” type=”text/css”/>
即可。這里/media對應的就是http://localhost/media/,實際指向/Users/arthasshih/python/django_pro/media/
4)解決Django admin頁面顯示不正常的情況
由於使用了Apache,可能會導致后台admini打開來顯示不正常,具體表現就是沒有正確加載css文件。修改Apache配置把他需要的路徑選擇好就可以了。可以舉一反三。
編輯加入
#media location for django admin
Alias /admin_media “/Library/Python/2.6/site-packages/django/contrib/admin/media”
<Directory “/Library/Python/2.6/site-packages/django/contrib/admin/media”>
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
這樣,就有了個http://localhost/admin_media指向django admin的css等文件所在位置。
然后在工程的setting.py文件里配置一下這一信息即可:修改其中的
ADMIN_MEDIA_PREFIX = ‘/admin_media/’
這樣,django admin這個app就知道從http://localhost/admin_media下面加載需要的css文件了。
結束
http://stackoverflow.com 這個網站非常好,關於程序的很多問題能在上面解決,強烈推薦。