前段時間自學了一下Django的web開發,幫自己的部門完成了一個小型資產管理的網站,現在總結一下過程。
一. 開發環境的搭建:
在windows7上採用eclipse + python + pydev + django開發,安裝流程如下:
1. 下載並安裝python。本文作者使用的是Windows 7 x86_64位,使用python2.7.6版本,默認安裝到C:\python27\。
2. 下載並解壓Django-1.6.5.tar.gz。運行命令行工具“cmd”,進入解壓後的目錄,運行C:\python27\python.exe setup.py install完成安裝Django。
3. 安裝好的Django一般在Python安裝目錄的Lib\site-packages下, 然後將C:\python27\Python26\Lib\site-packages\django\bin;添加到系統環境變量path中(注意路徑值根據個人安裝情況而定)。添加成功之後關閉cmd。再重新啓動一個cmd,輸入命令django-admin.py startproject mysite,如果沒有提示錯誤,則表示安裝成功。
4. 安裝Eclipse中開發Python的插件PyDev
- 本來是可以通過eclipse->Windows->Preferences->Install/Update->Available Software Sites增加Pydev網址,然後通過eclipse->help->Install New Software...進行安裝PyDev,貌似在我們這篇神奇的國土,這個方法無法訪問安裝
- 基於以上原因,我們只能通過手動進行PyDev插件的安裝了:從http://www.pydev.org/download.html下載PyDev插件,將其解壓後的文件夾裏會有features和plugins兩個文件夾,將其內容拷貝到eclipse對應的文件夾下即可:
- 配置PyDev,Preferences->Pydev->Interpreter-Python點Auto Config
二. 部署環境的搭建:
在ubuntu上採用 Django + Apache + Mysql搭建web server.
1. 安裝Python, ubuntu一般會自帶,可使用python --version 查看版本,推薦2.7+
2. 安裝Django, 介紹兩種方式:
-
下載安裝包直接安裝,到網站上下載: www.djangoproject.org Django-x.x.x.tar.gz
解壓:tar xzvf Django-1.2.1.tar.gz
安裝:sudo python install setup.py
-
使用pip工具安裝, 先安裝pip工具,sudo apt-get install python-pip, 再安裝Django, sudo pip install Django==1.6.7
3. 安裝Apache: sudo apt-get install apache2
4. 安裝MySQL: sudo apt-get install mysql-server mysql-client
5. 需要通過python去訪問MySQL,所以需要安裝MySQLdb,sudo apt-get install python-mysqldb
6. Apache 需要支持WSGI(Web Server Gateway Interface),這是web server和web application 之間的標準接口, 所以我們需要安裝libapache2-mod-python: sudo apt-get install libapache2-mod-python
7. 測試Django 和 MySQLdb是否成功, 在命令行進入python shell:python
>>>import django
>>>import MySQLdb
如果沒有報錯,說明安裝成功
8. 檢測Django本地服務器是否能成功工作:
sudo mkdir /home/djangoapps
sudo mkdir /home/djangoapps/work
cd /home/djangoapps/work
django-admin startproject mysite
cd mysite
python manage.py runserver
命令運行成功,會出現以下提示:
Validating models...
0 errors found
September 24, 2014 - 09:57:47
Django version 1.6.7, using settings 'mysite2.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
然後在瀏覽器輸入http://127.0.0.1:8000/,可以看到一個django的頁面,說明Django已經沒有問題。
三. Apache和Django的關聯:
1. 設置Apache的權限:
cd /etc/apache2
sudo vim apache2.conf
<Directory />
Options FollowSymLinks
AllowOverride None
#Require all denied
Allow from all
</Directory>
#號是我加的,Alow from all也是加的,改成這個樣子就是了。
2. 創建Django工程, 這在測試Django本地server的是夠已經完成。
3. 創建WSGI
sudo vim /home/djangoapps/work/mysite/apache/django.wsgi
填入如下內容:
import os import sys path = '/home/djangoapps/work/mysite' if path not in sys.path: sys.path.insert(0, '/home/djangoapps/work/mysite') os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()path是剛創建的工程文件夾位置,對應"mysite"的地方都是對應那個工程的名字。
4. 建站點設置文件
cd /etc/apache2/sites-available
sudo vim mysite.conf
填入如下內容
<VirtualHost *:80>
#ServerName hello.djangoserver
DocumentRoot /home/djangoapps/work/mysite
<Directory /home/djangoapps/work/mysite>
Order allow,deny
Allow from all
</Directory>
WSGIDaemonProcess mydjangosite processes=2 threads=15 display-name=%{GROUP}
WSGIProcessGroup mydjangosite
WSGIScriptAlias / /home/djangoapps/work/mysite/apache/django.wsgi
</VirtualHost>
sudo a2ensite mysite
sudo service apache2 reload
Django站點已經配置好了,這時訪問 http://127.0.0.1,可以看到的是Apache的頁面了。
sudo a2dissite 000-default sudo service apache2 reload
這時就能正常訪問剛建的django站點了。
6. 配置端口
也可以換個端口,在mysite.conf文件中,<VirtualHost *:80>改成<VirtualHost *:xxxx>自己要的端口,比如8000。
cd /etc/apache2
sudo vim ports.conf
看到Listen 80了吧,下面加一行 Listen 8000,就能用8000端口了。
sudo service apache2 reload
四. 開發過程中的問題
1. 在使用html TextArea控件時,發現輸入的內容被POST到服務器,寫進數據庫時是有換行的,但是從數據庫讀出來再帶入到Django的模板時換行會被忽略掉,使用pre標籤可以解決此問題,<pre> {{mode}} </pre>。
五. 相關資源:
https://www.djangoproject.com/
http://djangobook.py3k.cn/2.0/