Linux下安裝Django


  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 192.168.1.41:80

  因為要從局域網訪問所以后面我們自己定義的是服務器本身的ip和端口號,啟動之后命令行進入等待,訪問之前不要忘了關閉防火牆,對於centos可以使用如下命令關閉:

/etc/init.d/iptables stop

  對於我現在使用的Fedora,關閉命令是:

/bin/systemctl stop firewalld.service

  關閉防火牆之后,我們通過瀏覽器訪問http://192.168.1.41/即可以打開頁面,

  看到這個頁面說明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 192.168.1.41: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就是一個網頁模板,為了簡單,沒有添加動態的數據:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title>home視圖</title>
 6 </head>
 7 <body>
 8     <h3>Hello Django!</h3>
 9 </body>
10 </html>

  同樣添加urls.py的配置項,設置訪問url,代碼就是下圖列表中的第三項:

  

  保存后,同樣啟動服務器,訪問http://192.168.1.41/home就可以看到對應的響應

  

  以上就是Django基本的安裝和最簡單的例子,Django還有很多強大的功能,特別在國外,很多網站都是基於Django構建的,Django的特點就是功能強大並且使用簡單,適合快速開發

 


免責聲明!

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



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