Django框架的初使用

1Django框架的初使用

提及Django框架,確定須要首先明確一個概念,即軟件框架。下面就是第一個問題:html

1 軟件框架(software framework)

1.1 概念界定

軟件框架:一般指的是爲了實現某個業界標準或完成特定基本任務的軟件組件規範,也指爲了實現某個軟件組件規範時,提供規範所要求之基礎功能的軟件產品1python

軟件框架是具備基礎功能的軟件產品:web

  • 基礎功能:能夠理解爲爲了知足某類業務場景而設定的功能。
  • 軟件產品:軟件框架是爲了針對某一類軟件設計問題而產生的。

1.2 形象理解

  • 其實能夠將軟件框架想象成一個公司,公司中有各個職能部門,每一個部門各司其職,經過部門之間的配合來完成工做,這些部門就造成了一個公司的組織架構。
  • 軟件框架也是如此,只是說一個公司,它是針對某一市場而成立的,而軟件框架的設計是針對某一類軟件問題而設計的, 其目的主要是提升軟件開發效率在這裏插入圖片描述shell

    軟件框架是由各個模塊組成,各個模塊都會有不一樣特定的功能。模塊與模塊之間相互配合來完成軟件的開發。數據庫

在介紹完軟件框架是什麼以後,就須要研究一下具體的框架模式,這裏介紹下MVC框架模式:django

2 MVC

2.1 框架、設計模式、架構

筆者曾很困擾於這問題,查找了不少相關文字,做下總結和體會表述:
基本概念:設計模式

框架一般是代碼重用
設計模式設計重用,其只有實例化以後才能用代碼表示;
框架介於二者之間,部分代碼重用,部分設計重用,有時分析也可重用。軟件架構師在製做軟件的時候、對軟件規劃的一種藍圖、通常是分層、畫出各個組件的關係。2瀏覽器

比較:bash

  • 框架與架構:架構偏於設計,框架偏於技術;
    框架較之架構更具體更加聚焦於具體業務場景,一個架構能夠經過多種框架來實現。
  • 框架與設計模式:設計模式較框架是更小的元素,更抽象;
    一個框架中每每含有一個或多個設計模式,框架老是針對某一特定應用領域(好比說Django就是隻針對web開發),但同一模式卻可適用於各類應用。兩者共同致力於重用,於是思想能夠互相借鑑。
  • 架構與設計模式:
    設計模式是用於解決一種特定的問題,範圍較小;架構針對體系結構進行設計,範疇較大。一個架構中可能會出現多個設計模式來結果架構中的問題。

邏輯思考順序:服務器

在作一個項目的時候,首先設計出來的應該是架構,而後再來考慮運用什麼框架和設計模式。不過平時遇到的都不是特別複雜的系統,用一些框架和設計模式足矣。3

2.2 前世此生

2.2.1 前世

(1)Model(模版)-View(視圖)-Controller(控制器)

  • 最初是一種軟件設計模式,是爲了將傳統的輸入(input)、處理(processing)、輸出(output)任務運用到圖形化用戶交互模型中而設計的;
  • 隨後,MVC的思想被應用在了Web開發方面,被稱爲Web MVC框架。

(2)
MVC的產生理念: 分工。讓專門的人去作專門的事。
MVC的核心思想: 解耦。讓不一樣的代碼塊之間下降耦合,加強代碼的可擴展性和可移植性,實現向後兼容。

2.2.2 此生

(1)web mvc框架圖
在這裏插入圖片描述
(2)具體功能介紹

  • M全拼爲Model: 主要封裝對數據庫層的訪問,對數據庫中的數據進行增、刪、改、查操做。
  • V全拼爲View:用於封裝結果,生成頁面展現的html內容。
  • C全拼爲Controller:用於接收請求,處理業務邏輯,與Model和View交互,返回結果。

介紹完相關基礎概念後,下面對就Django框架進行總體邏輯和具體流程的瞭解:

3 Django總體邏輯

3.1 簡介

  • 主要目的是簡便、快速的開發數據庫驅動的網站
  • 強調代碼複用,多個組件能夠很方便的以"插件"形式服務於整個框架,Django有許多功能強大的第三方插件,你甚至能夠很方便的開發出本身的工具包。
  • 具備很強的可擴展性

Django框架遵循MVC設計,而且有一個專有名詞:MVT

3.2 MVT

(1)Django MVT框架圖
在這裏插入圖片描述
(2)具體功能介紹:

  • M全拼爲Model:與MVC中的M功能相同,負責和數據庫交互,進行數據處理。
  • V全拼爲View:與MVC中的C功能相同,接收請求,進行業務處理,返回應答。
  • T全拼爲Template:與MVC中的V功能相同,負責封裝構造要返回的html。

4 Django項目的構建流程

4.1 搭建環境

問1:
若是在一臺機器上,想開發多個不一樣的項目,須要用到同一個包的不一樣版本,若是還使用sudo pip3 install 包名稱的命令,在同一個目錄下安裝或者更新,其它的項目必須就沒法運行了,怎麼辦呢?

答1:使用虛擬環境

問2:
什麼是虛擬環境?

答2:虛擬環境其實就是對真實pyhton環境的複製
這樣咱們在複製的python環境中再去安裝相應的包就不會影響到真實的python環境了。
經過創建多個虛擬環境,在不一樣的虛擬環境中開發項目就實現了項目之間的隔離。

4.1.1 虛擬環境安裝

(1)首先安裝虛擬環境,命令以下:

sudo pip3 install virtualenv #安裝虛擬環境

(2)接下來還要安裝虛擬環境擴展包,命令以下:

sudo pip3 install virtualenvwrapper #安裝虛擬環境包裝器的目的是使用更加簡單的命令來管理虛擬環境。

(3)修改用戶家目錄下的隱藏配置文件.bashrc,在文件最後處添加以下內容:
在這裏插入圖片描述

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh

(4)建立python3虛擬環境的命令以下:

mkvirtualenv -p python3 虛擬環境名稱
例:
mkvirtualenv -p python3 test1_py3

在這裏插入圖片描述
綜述:

建立成功後,會自動工做在這個虛擬環境上。
建立虛擬環境須要聯網。
工做在虛擬環境上,提示符最前面會出現"(虛擬環境名稱)"。
全部的虛擬環境,都位於/home/您的用戶名/下的隱藏目錄.virtualenvs下。

4.1.2 虛擬環境相關終端語句操做

  • 退出虛擬環境:deactivate
  • 查看全部虛擬環境:workon 兩次tab鍵
  • 使用虛擬環境:workon 虛擬環境名稱
  • 刪除虛擬環境:rmvirtualenv 虛擬環境名稱

    例: 先退出:deactivate;再刪除:rmvirtualenv py_django

  • 在虛擬環境中可使用pip命令操做python包:pip install 包名稱

    注意:在虛擬環境中不可以使用sudo pip install 包名稱 來安裝python包,這樣安裝的包實際是安裝在了真實的主機環境上。

  • 查看已安裝的python包:pip list or pip freeze

    這兩個命令均可以查看當前工做的虛擬環境中安裝了哪些python包,只是顯示的格式稍有不一樣。

  • 安裝django包:pip install django==1.8.2

    若是前面刪除過虛擬環境py_django,則須要先建立一下,不然直接安裝django包便可。在這裏插入圖片描述

4.1.3 自我總結

  • 在爲了不在正式環境下建立多個項目而致使相關安裝包的衝突,從而進行虛擬環境安裝後,咱們就能夠在咱們安裝的的虛擬環境中進行Django項目的建立了。
  • 邏輯關係上是咱們能夠根據咱們的需求建立多個虛擬環境,而在每一個虛擬環境下咱們就能夠進行相關Django項目的建立

    在不一樣的虛擬環境下咱們能夠自由的根據該虛擬環境下Django項目的須要進行相關包的安裝,這樣就解決了前文所說的同一個包不一樣版本之間的替代問題。

下面就介紹下Django項目的建立:

4.2 建立Django項目

強調一下,建立Django項目前:

一是要在正確的虛擬環境中間(即要進入4.1步驟中已經建立好的虛擬環境中);
二是方便後期相關文件管理,咱們最好建立該項目的專屬文件夾。
在這裏插入圖片描述

4.2.1 建立Django的命令

建立項目的命令以下:

django-admin startproject 項目名稱
例:
django-admin startproject test1

在這裏插入圖片描述

4.2.2 Django項目默認目錄說明

進入4.2.1建立的Django項目test1目錄,查看目錄樹形結構
在這裏插入圖片描述

  • manage.py項目管理文件,經過它管理項目。
  • 與項目同名的目錄,此處爲test1
  • _init_.py是一個空文件,做用是這個目錄test1能夠被看成使用。
  • settings.py項目的總體配置文件
  • urls.py是項目的URL配置文件
  • wsgi.py項目與WSGI兼容的Web服務器入口

在django中,項目的組織結構爲一個項目包含多個應用,一個應用對應一個業務模塊。下面對應用進行介紹:

4.3 建立Django項目下的應用

Django中對於應用的操做分爲建立安裝,下面分別介紹:

4.3.1 應用的建立

建立應用的命令以下:

python manage.py startapp 應用名
例如:
python manage.py startapp test_app

在這裏插入圖片描述
應用默認目錄說明:
在這裏插入圖片描述

  • _init.py_是一個空文件,表示當前目錄booktest能夠看成一個python包使用。
  • tests.py文件用於開發測試用例,在實際開發中會有專門的測試人員,這個事情不須要咱們來作。
  • models.py文件跟數據庫操做相關。
  • views.py文件跟接收瀏覽器請求,進行處理,與M和T進行交互,返回頁面,定義處理視圖函數
  • admin.py文件跟網站的後臺管理相關。
  • migrations文件夾以後給你們介紹。

應用建立成功後,須要安裝纔可使用,也就是創建應用和項目之間的關聯;

4.3.2 應用的安裝

創建應用和項目之間的聯繫,須要對應用進行註冊。
修改settings.py中的INSTALLED_APPS配置項。
在這裏插入圖片描述
在這裏插入圖片描述

4.4 運行服務器

經過上面的一些了操做,就可使用django提供的一個純python編寫的輕量級web服務器,僅在開發階段使用。
運行服務器命令以下:

python manage.py runserver ip:端口
例:
python manage.py runserver

能夠不寫IP和端口,默認IP是127.0.0.1,默認端口爲8000。
在這裏插入圖片描述
在這裏插入圖片描述


  1. 百度百科-軟件框架 link

  2. 百度百科-軟件框架 link

  3. 架構、框架和設計模式 link

相關文章
相關標籤/搜索