Django是基於Python開發的免費的開源網站框架,也是python web開發中重量級的web框架,能夠用於快速搭建高性能而且優雅的網站!
下面以Fedora爲例安裝Django,最新Fedora 23集成了python 3.4.3,因此能夠直接安裝django,同時建議不要使用本身編譯安裝的python來安裝django,這樣可能會出問題,由於不少東西要依賴於系統自己,本身編譯安裝的python只用來開發本地應用,而不是web開發;另外在Fedora中,輸入python會提示命令找不到,而輸入python3會進入python交互式界面,那是由於/usr/bin/下只有python3軟連接,連接到python3.4,而並無python這個連接,因此爲了後來方便,咱們能夠創建一個軟連接python,不用每次都再輸python3了,命令以下:
ln -s /usr/bin/python3 /usr/bin/python
這樣就創建了一個軟連接,之後隨時輸入python便可了,好的,下面正式的開始安裝Django
安裝django以前,首先要安裝pip,pip是一種相似yum這樣的軟件安裝工具,用它能夠很方便的安裝軟件,而且自動解決版本升級問題,實際上pip是專門安裝和管理python包的工具,是easy_install的替代品,因此要先安裝pip,pip的在python官網的連接是:https://pypi.python.org/pypi/pip/
進去上述網站以後,點擊Installation就能夠進入安裝說明界面了,網址是:https://pip.pypa.io/en/latest/installing/
緊接着咱們就看到,pip的安裝方法之一就是使用get-pip.py腳原本安裝,咱們能夠複製get-pip.py的連接,也能夠先下載到本地計算機上而後上傳至服務器,能夠看到get-pip.py的連接是:https://bootstrap.pypa.io/get-pip.py
執行下面命令下載該文件:
wget https://bootstrap.pypa.io/get-pip.py
下載完以後,根據官網說明,要使用本地的python運行該腳本:
python get-pip.py
稍等一下pip就安裝成功了,能夠經過執行的pip命令查看對應的參數,下面使用pip來安裝django,django官網有詳細的教程:https://www.djangoproject.com/,根聽說明知道,安裝django的命令是:pip install Django,這樣運行默認安裝的是最新版,目前是1.9.2,由於python版本的緣由,因此會出現錯誤,安裝失敗,根據測試在python3.4基礎上安裝Django 1.8.9正式版是沒有問題的,因此要執行下面命令:
pip install Django==1.8.9
回車後稍等一會,須要下載相應的文件,等執行完畢,Django 1.8.9就安裝成功了,若是是CentOS 6.6或者更低版本,系統上帶的python版本是2.6.6,那麼通過測試安裝Django 1.5.8是沒有任何問題的因此用pip應該是:pip install Django==1.5.8
等安裝完成以後,執行python進入交互式界面,輸入import django,而後再輸入django.VERSION回車後能夠看到剛剛安裝的Django的版本號,或者直接執行下面命令:
python -c "import django; print(django.get_version())"
這同時也說明django安裝成功了
接下來能夠開始建立web應用了,在咱們的根目錄下隨便建立一個目錄,用來專門放置Django項目,在該目錄下執行下面命令:
django-admin.py startproject HelloDjango
這就是建立django項目的命令,使用pip安裝django後,在/usr/bin/下會生成django-admin.py新版本中也會生成django-admin可執行文件,因此也能夠執行:django-admin startproject HelloDjango建立項目,建立後咱們進入項目目錄:
cd HelloDjango/
進入目錄以後,能夠經過tree命令查看目錄結構,若是提示沒有tree命令的話,可使用yum -y install tree命令來安裝
咱們能夠看到初始目錄的文件了,項目目錄下manage.py是一個實用的命令行工具,能夠經過它管理django服務器等,容器下還有一個和容器同名的HelloDjango目錄,__init__.py是項目初始化文件,告訴python該目錄是一個python包,settings.py是用來進行項目配置的文件,urls.py是項目中全部的url聲明,能夠認爲是django驅動整個項目的url目錄,能夠定義多種優雅的路由請求,wsgi.py是一個WSGI兼容的Web服務器入口,方便運行web項目。如今這就是一個初始的項目,咱們接下來啓動這個項目:
python manage.py runserver 主機ip:80
由於要從局域網訪問因此後面咱們本身定義的是服務器自己的ip和端口號,啓動以後命令行進入等待,訪問以前不要忘了關閉防火牆,對於centos可使用以下命令關閉:
/etc/init.d/iptables stop
對於我如今使用的Fedora,關閉命令是:
/bin/systemctl stop firewalld.service
關閉防火牆以後,咱們經過瀏覽器訪問http://hostIP/便可以打開頁面,
看到這個頁面說明django運行一切正常了,瀏覽器每發出請求,服務器都會更新消息:
經過Ctrl+C快捷鍵能夠終止服務器,接下來咱們新建一個簡單的測試應用,能夠在HelloDjango下直接創建視圖文件,可是爲了應用結構的清晰不建議這樣作,正確方法是在容器根目錄下,使用以下命令能夠創建一個應用,一個項目能夠包括多個應用:
python manage.py startapp app1
這樣在容器下就會出現一個app1的目錄,結構以下:
每一個源文件的含義也不難理解,下面使用vim打開views.py,若是沒有vim可使用yum install vim進行安裝
打開後views.py是空的,有用的只有頭部一行代碼,是用於後來模板渲染的
如今咱們直接補充以下代碼,打印一行簡單的輸出:
from django.http import HttpResponse def index(request): return HttpResponse("Hello Django!")
頭部包含了請求庫,每一個方法都必須有request參數,這是用來接收請求的,HttpResponse方法的做用就是響應請求,而後保存視圖文件,進入項目下的HelloDjango目錄,編輯settings.py配置文件,找到INSTALLED_APPS配置項,追加一項app1,將應用app1添加到項目容器
保存以後,編輯urls.py文件,頭部追加一行from app1 import views as app1_views,這個app_views是咱們本身定義的導入的視圖名,而後給urlpatterns這個列表添加一項:url(r'^$', app1_views.index), 注意後面要有一個逗號,前面是定義請求url的正則表達式,後面是響應輸出的視圖方法,這裏正則表達式匹配爲空,就是表明的根目錄,以下圖,帶有# new註釋的是新增的代碼:
如今保存,回到容器下再次運行:python manage.py runserver hostip:80啓動開發服務器,用瀏覽器訪問便可
下面能夠在以前的視圖中再定義一個方法,
def home(request): return render(request, 'home.html')
使用render方法以前要使用from django.shortcuts import render導入對應庫,由於前面默認導入了因此不用再次導入了,render方法的做用就是調用對應的視圖模板也就是home.html,那麼home.html放到什麼地方呢,在app1目錄下執行下面命令:
$ mkdir templates $ cd templates/ $ vim home.html
在django加載app1應用時,會自動讀取templates模板目錄從而渲染裏面的數據,home.html就是一個網頁模板,爲了簡單,沒有添加動態的數據:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>home視圖</title>
</head>
<body>
<h3>Hello Django!</h3>
</body>
</html>
一樣添加urls.py的配置項,設置訪問url,代碼就是下圖列表中的第三項:
保存後,一樣啓動服務器,訪問http://hostip/home就能夠看到對應的響應
以上就是Django基本的安裝和最簡單的例子。