[python網站開發] 一.Django入門知識及建立第一個網站

Eastmount發表於2017-06-27

隨著Python應用越來越廣泛,學習Python相關知識越來越多的人選擇。最新研究,Python已成為美國top高校最受歡迎的語言,同時國內用Python開發的網站越來越多,比較知名的網站如知乎、豆瓣、果殼等,再加上之前自己資料分析和網路爬蟲一直使用的是Python,對它比較熟悉,所以這系列文章將講述Python搭建網站,後面會結合資料分析視覺化進行深入研究。

Python有許多款不同的Web框架,包括:Pylons、Tornado、Django、Bottle、Flask等,而Django是最有代表性的一個,也可認為是Python框架中最好的、文件最完善、市場佔有率最高的框架,許多成功的網站和APP都基於Django技術的。

下面從入門開始講解,同時Django相關資料也比較多,寫得比我好的很多,而我這系列主要結合例項和自己的體驗進行講解,後面資料分析相關知識的加入也是這篇文章的昇華,希望對你有所幫助,如果文章中存在錯誤或不足之處,還請海涵。


一. Django入門知識

Django是一個開放原始碼的Web應用框架,由Python寫成,Django採用了MVC的軟體設計模式,即模型M,檢視V和控制器C。


百度百科-MVC
MVC全名是Model View Controller,是模型(model)-檢視(view)-控制器(controller)的縮寫,一種軟體設計典範,用一種業務邏輯、資料、介面顯示分離的方法組織程式碼,將業務邏輯聚集到一個部件裡面,在改進和個性化定製介面及使用者互動的同時,不需要重新編寫業務邏輯。MVC被獨特的發展起來用於對映傳統的輸入、處理和輸出功能在一個邏輯的圖形化使用者介面的結構中。常見框架:Struts、Spring等。


Django-MTV
這部分內容直接引用部落格園feixuelove大神的敘述,講解得真的很好,強烈推薦閱讀。
    簡約而不簡單的Django新手圖文教程 - feixuelove

MVC其實就是把不同型別的檔案放到不同的目錄下的一種方法,然後取了個高大上的名字。當然,它帶來的好處有很多,比如前後端分離,鬆耦合等等。       
    1.模型(model):定義資料庫相關的內容,一般放在models.py檔案中。
    2.檢視(view):定義HTML等靜態網頁檔案相關,那些html、css、js等前端的東西。
    3.控制器(controller):定義業務邏輯相關,就是你的主要程式碼。  

MTV: 有些WEB框架覺得MVC的字面意思很彆扭,就給它改了一下。view不再是HTML相關,而是主業務邏輯了,相當於控制器。html被放在Templates中,稱作模板,於是MVC就變成了MTV。這其實就是一個文字遊戲,和MVC本質上是一樣的,換了個名字和叫法而已,換湯不換藥。


目錄分開,就必須有機制將他們在內裡進行耦合。在Django中,urls、orm、static、settings等起著重要的作用。一個典型的業務流程是如下圖所示:


PS:這部分內容本來想自己寫的,但是feixuelove大神寫得更好,同時自己體會不是很深,所以直接引用了。相信自己做得多以後,能用自己的理解進行總結,如果該部分侵權,立刻刪除。


二. 安裝及配置Django

PIP指令
easy_insall的作用和perl中的cpan,ruby中的gem類似,提供了線上一鍵安裝模組的傻瓜方便方式,而pip是easy_install的改進版,提供更好的提示資訊,刪除package等功能。常見的具體用法如下:

easy_install的用法:  
1) 安裝一個包  
 $ easy_install <package_name>  
 $ easy_install "<package_name>==<version>"  
2) 升級一個包  
 $ easy_install -U "<package_name>>=<version>"  
  
pip的用法  
1) 安裝一個包  
 $ pip install <package_name>  
 $ pip install <package_name>==<version>  
2) 升級一個包 (如果不提供version號,升級到最新版本)  
 $ pip install --upgrade <package_name>>=<version>  
3)刪除一個包  
 $ pip uninstall <package_name>  
也在官網下載,下載地址:https://www.djangoproject.com/

作者安裝的版本:(pip list指令檢視)

    Python 2.7.8
    Django 1.11.2


安裝Django
通過cd去到Python的Scripts資料夾下,然後呼叫pip指定進行安裝。

pip install django
執行結果如下圖所示,它在CMD環境下自動下載安裝。


安裝成功後,在Scripts目錄下存在django-admin.py的檔案。


在Scripts資料夾下輸入: django-admin.py,檢視命令的介紹。


下面部分講解如何建立一個Python網站專案。



三. 建立第一個專案及詳解

第一步 建立專案HelloWorld
通過呼叫django-admin.py檔案中的startproject命令進行安裝。

django-admin.py startproject HelloWorld

然後在Scripts資料夾下生成專案HelloWorld,如下圖所示。







CMD中cd命令去到資料夾,dir命令顯示目錄下檔案,tree命令顯示路徑。



第二步 runserver啟動專案伺服器
接下來進入HelloWorld專案,並輸入如下命令,啟動專案伺服器。

python manage.py runserver 9090
其中9090為埠號,如Java網站的8080埠等。


然後通過瀏覽器方位127.0.0.1:9090,顯示It worked表示配置成功。


第三步 介紹專案的各個檔案及作用
參考RUNOOB網站對Django幾個檔案的進行介紹,目錄如下:

|-- HelloWorld
|   |-- __init__.py
|   |-- settings.py
|   |-- urls.py
|   `-- wsgi.py
|
`-- db.sqlite3
`-- manage.py
說明如下:
  • HelloWorld: 專案的容器。
  • manage.py: Django管理主程式。一個實用的命令列工具,可讓你以各種方式與該 Django 專案進行互動。
  • __init__.py: 空檔案。告訴Python該目錄是一個Python包。
  • settings.py: 主配置檔案。該Django專案的設定/配置。
  • urls.py: URL路由檔案。Django專案的URL宣告,一份由Django驅動的網站"目錄"。
  • wsgi.py: 網路通訊介面。一個WSGI相容的Web伺服器的入口,以便執行你的專案。

用Sublime開啟如下所示:




第四步 建立檢視views.py檔案
在HelloWorld目錄下建立一個views.py檔案,用於書寫業務處理邏輯。

#-*- coding:utf-8 -*-
from django.http import HttpResponse
 
def hello(request):
    return HttpResponse("Hello world, My name is Eastmount!")
自定義hello方法,引數request固定的,用於返回HttpResponse。


第五步 配置URL
修改urls.py檔案內容,將訪問的內容改為views.py檔案中的hello函式。
如下所示:

"""HelloWorld URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/1.11/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.conf.urls import url, include
    2. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import url
from views import *

urlpatterns = [
    url(r'^$', hello),
]
程式碼需要匯入views檔案內容,才能引用hello方法。views.py檢視檔案在編譯後會產生對應的views.pyc檔案。然後啟動Django伺服器,在瀏覽器中訪問即可,如下圖所示:




推薦資料:
    簡約而不簡單的Django新手圖文教程 - feixuelove(強烈推薦)
    Django建立第一個專案 - Runoob
    https://www.djangoproject.com/
    Python Django入門教程 - 百度文庫



希望文章對你有所幫助,如果文章存在錯誤或不足之處,還請海涵。
    加油,秀璋。綠妖,晚安!

(By:Eastmount 2017-06-27 晚上12點  http://blog.csdn.net/eastmount/ )

相關文章