django環境搭建
標簽: python
django環境搭建
文章目錄
一、軟件框架
1.什么是軟件框架?
舉個簡單的例子,對于一個公司來說,公司中有各個職能部門,每個部門各司其職,通過部門之間的配合來完成工作,這些部門就形成了一個公司的組織架構。從某種意義上來說,公司就是一種框架。那么對應到軟件設計上來說,軟件框架是由其中的各個模塊組成的,每個模塊負責特定的功能,模塊與模塊之間相互協作來完成軟件開發。
一個公司,它是針對某一市場而成立的,而軟件框架的設計,也是針對某一類軟件問題而設計的,其目的主要是提高軟件開發效率。
2.MVC簡介
-
MVC的全拼為Model-View-Controller
,最早由TrygveReenskaug在1978年提出,是施樂帕羅奧多研究中心(Xerox PARC)在20世紀80年代為程序語言Smalltalk發明的一種軟件設計模式,是為了將傳統的輸入(input)、處理(processing)、輸出(output)任務運用到圖形化用戶交互模型中而設計的
。 - 隨著標準輸入輸出設備的出現,開發人員只需要將精力集中在業務邏輯的分析與實現上。
- 后來被推薦為Oracle旗下Sun公司Java EE平臺的設計模式,并且受到越來越多的使用ColdFusion和PHP的開發者的歡迎。
- 現在雖然不再使用原來的分工方式,但是這種分工的思想被沿用下來,廣泛應用于軟件工程中,是一種典型并且應用廣泛的軟件架構模式。
- 后來,
MVC的思想被應用在了Web開發方面,被稱為Web MVC框架
。 -
MVC框架的核心思想是:解耦,讓不同的代碼塊之間降低耦合,增強代碼的可擴展性和可移植性,實現向后兼容。
- 當前主流的開發語言如Java、PHP、Python中都有MVC框架。
3.Web MVC各部分的功能
-
M全拼為Model,主要封裝對數據庫層的訪問,對數據庫中的數據進行增、刪、改、查操作。
- V全拼為View,用于封裝結果,生成頁面展示的html內容。
-
C全拼為Controller,用于接收請求,處理業務邏輯,與Model和View交互,返回結果。
二、Django簡介
- Django,發音為[`d?æ?ɡ??],是用python語言寫的開源web開發框架,并遵循MVC設計。
- 勞倫斯出版集團為了開發以新聞內容為主的網站,而開發出來了這個框架,于2005年7月在BSD許可證下發布。
- 這個名稱來源于比利時的爵士音樂家DjangoReinhardt,他是一個吉普賽人,主要以演奏吉它為主,還演奏過小提琴等。
- 由于Django在近年來的迅速發展,應用越來越廣泛,被著名IT開發雜志SDTimes評選為2013SDTimes100,位列"API、庫和框架"分類第6位,被認為是該領域的佼佼者。
-
Django的主要目的是簡便、快速的開發數據庫驅動的網站。它強調代碼復用,多個組件可以很方便的以"插件"形式服務于整個框架,Django有許多功能強大的第三方插件,你甚至可以很方便的開發出自己的工具包。這使得Django具有很強的可擴展性。
- 它還強調快速開發和DRY(DoNotRepeatYourself)原則。
- 點擊查看django官方網站
- 點擊查看django源碼
- 點擊查看django官方中文文檔
Django框架遵循MVC設計,并且有一個專有名詞:MVT
三、MVT
MVT各部分的功能
-
M全拼為Model,與MVC中的M功能相同,負責和數據庫交互,進行數據處理。
-
V全拼為View,與MVC中的C功能相同,接收請求,進行業務處理,返回應答。
-
T全拼為Template,與MVC中的V功能相同,負責封裝構造要返回的html。
差異就在于黑線黑箭頭標識出來的部分
四、django環境搭建
虛擬環境
在開發過程中,當需要使用python的包時可以聯網安裝
sudo pip3 install 包名稱
使用如上命令,會將包安裝到/usr/local/lib/python3.5/dist-packages
下。
-
產生的問題
如果在一臺機器上,想開發多個不同的項目,需要用到同一個包的不同版本
,如果還使用上面的命令,在同一個目錄下安裝或者更新,其它的項目必須就無法運行了,怎么辦呢?
解決方案:虛擬環境。
- 那么什么是虛擬環境呢?
這里給大家舉一個簡單的例子,桌面上有一個word文件,我們打開修改這個文件,修改了一會之后發現還是原來的文件比較好,這個時候我想找回原來的文件就比較困難了。那么怎么辦呢?就有這樣一種解決方案,在修改文件之前,先復制一份,然后在副本文件里進行修改,這樣即使發現修改有錯,也不會影響原始文件。
虛擬環境其實就是對真實pyhton環境的復制,這樣我們在復制的python環境中安裝包就不會影響到真實的python環境。通過建立多個虛擬環境,在不同的虛擬環境中開發項目就實現了項目之間的隔離。
-
創建
首先安裝虛擬環境,命令如下:
sudo pip3 install virtualenv #安裝虛擬環境
-
接下來還要安裝虛擬環境擴展包,命令如下:
sudo pip3 install virtualenvwrapper
安裝虛擬環境包裝器的目的是使用更加簡單的命令來管理虛擬環境。
-
修改用戶家目錄下的配置文件.bashrc,添加如下內容:
export WORKON_HOME=$HOME/.virtualenvs
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
使用source .bashrc命令使配置文件生效。
-
創建python3虛擬環境的命令如下:
mkvirtualenv -p python3 虛擬環境名稱
例:
mkvirtualenv -p python3 py_django
總結:
-
創建成功后,會自動工作在這個虛擬環境上。
-
創建虛擬環境需要聯網。
-
工作在虛擬環境上,提示符最前面會出現"(虛擬環境名稱)"
。 -
所有的虛擬環境,都位于/home/python/下的隱藏目錄.virtualenvs下。
-
退出
退出虛擬環境的命令如下:
deactivate
-
查看與使用
查看所有虛擬環境的命令如下:
提示:workon后面有個空格,再按兩次tab鍵。
workon 兩次tab鍵
-
使用虛擬環境的命令如下:
寫出名稱的前部分后,可以使用tab鍵補齊
workon 虛擬環境名稱
例:
workon py_django
-
刪除
刪除虛擬環境的命令如下:
rmvirtualenv 虛擬環境名稱
例:
先退出:deactivate
再刪除:rmvirtualenv py_django
-
包操作
在虛擬環境中可以使用pip命令操作python包,安裝命令如下:
pip install 包名稱
注意:在虛擬環境中不可使用sudo pip install 包名稱 來安裝python包,這樣安裝的包實際是安裝在了真實的主機環境上。
-
查看已安裝的python包命令如下:
pip list
pip freeze
這兩個命令都可已查看當前工作的虛擬環境中安裝了哪些python包,只是顯示的格式稍有不同。
-
安裝django包
mkvirtualenv py_django
然后安裝django==2.0.7的包,命令如下:
pip3 install django==2.0.7
五、創建項目
我們以一個電商網站為例,網站上有跟用戶有關的頁面,有跟商品有關的頁面,還有跟訂單有關的頁面,這樣的一塊內容其實就是網站的一個功能模塊。
在django中,項目的組織結構為一個項目包含多個應用,一個應用對應一個業務模塊。
示例
:
創建項目的名稱為test1,完成"圖書-英雄"信息的維護,創建應用名稱為booktest。
1.創建項目
在當前用戶的某個目錄下創建項目,這樣不會發生權限問題。
此處在/home/python/pytest/目錄下創建項目
cd /home/python/
mkdir pytest
cd pytest
創建項目的命令如下:
django-admin startproject 項目名稱
例:
django-admin startproject test1
接下來可以使用IDE打開此目錄,開發項目了,此處使用pycharm打開test1目錄。
2.項目默認目錄說明
進入test1目錄,查看目錄樹形結構
cd test1
tree
- manage.py是項目管理文件,通過它管理項目。
- 與項目同名的目錄,此處為test1。
-
_init_.py是一個空文件,作用是這個目錄test1可以被當作包使用
。 - settings.py是項目的整體配置文件。
-
urls.py是項目的URL配置文件。
- wsgi.py是項目與WSGI兼容的Web服務器入口。
3.創建應用
使用一個應用開發一個業務模塊,此處創建應用名稱為booktest,完成圖書-英雄的信息維護。
創建應用的命令如下:
python manage.py startapp booktest
- _init.py_是一個空文件,表示當前目錄booktest可以當作一個python包使用。
-
tests.py文件用于開發測試用例,在實際開發中會有專門的測試人員,這個事情不需要我們來做。
- models.py文件跟數據庫操作相關。
-
views.py文件跟接收瀏覽器請求,進行處理,返回頁面相關。
- admin.py文件跟網站的后臺管理相關。
-
migrations文件夾之后給大家介紹。
4.安裝應用
應用創建成功后,需要安裝才可以使用,也就是建立應用和項目之間的關聯,在test1/settings.py中INSTALLED_APPS下添加應用的名稱就可以完成安裝。
初始項目的INSTALLED_APPS如下圖:
接下來在元組中添加一個新的項,當前示例為booktest
'booktest',
5.開發服務器
在開發階段,為了能夠快速預覽到開發的效果,django提供了一個純python編寫的輕量級web服務器,僅在開發階段使用。
運行服務器命令如下:
python manage.py runserver ip:端口
例:
python manage.py runserver
可以不寫IP和端口,默認IP是127.0.0.1,默認端口為8000
。
服務器成功啟動后如下圖:
緊接著在瀏覽器中輸入網址“127.0.0.1:8000”,或者按著ctrl鍵點擊上圖中標示出來的地址,可以查看當前站點開發效果。
如果增加、修改、刪除文件,服務器會自動重啟; 按ctrl+c停止服務器。
或
智能推薦
Django環境搭建
Django環境搭建 一、安裝Django 檢查是否安裝成功 二、Django環境驗證 1)使用django-admin創建工程 2)創建后的工程目錄,使用tree /f 3)用python manage.py runserver 0.0.0.0:8000啟動工程,可以通過瀏覽器http://127.0.0.1:8000進行訪問即為成功。 三、Pycharm配置啟動Django工程 1)配置啟動 ...
Django開發環境搭建
Django簡介 Django是一個開放源代碼的Web應用框架,由Python寫成,是眾多Python web框架中最有代表性的一位。 Django遵守BSD版權,初次發布于2005年7月, 并于2008年9月發布了第一個正式版本1.0 ,目前最新的官方版本為2.0。 Django采用了MVC的軟件設計模式,即模型M,視圖V和控制器C。 安裝Django 一、安裝Python 1.因為django...
Django工程環境搭建
0、打開Ubuntu終端,進入要創建工程的目錄(桌面)——進入虛擬環境——輸入命令django-admin startproject super_mall創建工程super_mal 1、pycharm打開新建的工程,依次創建下面的目錄: 注:我們將第一個super_mall 定義為外層目錄(工作目錄),第一個super_mall 定義為內層目錄 外層...
Django入門(搭建環境)
Django入門 1、簡介 Django是高級python Web框架,鼓勵快速開發和使用的設計。它由經驗豐富的開發人員構建,它解決了web開發的大部分問題,因此可以只專注編寫應用程序而無需重新發明輪子。它是免費,開源的。 1、特點 開發速度快 提供項目工程管理的自動化腳本工具 數據庫ORM(Object Relational Mapping)支持 模板 表單 Admin站點管理 文件管理 認證權...
猜你喜歡
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...
Linux C系統編程-線程互斥鎖(四)
互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...