開始Django之旅
寫在前面
Django很久之前就學過,但是由於時間遠久很多東西已經記不起來了,因此打算從頭再學一遍。
關於Django
Django是一個開放源代碼的Web應用框架,由Python寫成。採用了MTV的框架模式,即模型M,視圖V和模版T。它最初是被開發來用於管理勞倫斯出版集團旗下的一些以新聞內容爲主的網站的,即是CMS(內容管理系統)軟件。並於2005年7月在BSD許可證下發布。這套框架是以比利時的吉普賽爵士吉他手Django Reinhardt來命名的。
框架介紹
Django是高水準的Python編程語言驅動的一個開源模型.視圖,控制器風格的Web應用程序框架,它起源於開源社區。使用這種架構,程序員可以方便、快捷地創建高品質、易維護、數據庫驅動的應用程序。這也正是OpenStack的Horizon組件採用這種架構進行設計的主要原因。另外,在Dj ango框架中,還包含許多功能強大的第三方插件,使得Django具有較強的可擴展性 [1] 。Django 項目源自一個在線新聞 Web 站點,於 2005 年以開源的形式被釋放出來。Django 框架的核心組件有:
-
用於創建模型的對象關係映射;
-
爲最終用戶設計較好的管理界面;
-
URL 設計;
-
設計者友好的模板語言;
-
緩存系統。
Django(發音:[`dʒæŋɡəʊ])
Django 根據比利時的爵士音樂家Django Reinhardt命名,他是一個吉普賽人,主要以演奏吉它爲主,還演奏過小提琴等。由於Django在近年來的迅速發展,應用越來越廣泛,被著名IT開發雜誌SD Times評選爲2013 SD Times 100,位列“API、庫和框架”分類第6位,被認爲是該領域的佼佼者
架構設計
Django已經成爲web開發者的首選框架,是一個遵循 MVC 設計模式的框架。MVC是Model、View、Controller三個單詞的簡寫,分別代表模型、視圖、控制器。Django其實也是一個MTV 的設計模式。MTV是Model、Template、View三個單詞的簡寫,分別代表模型、模版、視圖 [3] 。但是在Django中,控制器接受用戶輸入的部分由框架自行處理,所以 Django 裏更關注的是模型(Model)、模板(Template)和視圖(Views),稱爲 MTV模式。它們各自的職責如下:
開始Django之旅寫在前面Django很久之前就學過,但是由於時間遠久很多東西已經記不起來了,因此打算從頭再學一遍。
關於DjangoDjango是一個開放源代碼的Web應用框架,由Python寫成。採用了MTV的框架模式,即模型M,視圖V和模版T。它最初是被開發來用於管理勞倫斯出版集團旗下的一些以新聞內容爲主的網站的,即是CMS(內容管理系統)軟件。並於2005年7月在BSD許可證下發布。這套框架是以比利時的吉普賽爵士吉他手Django Reinhardt來命名的。 框架介紹Django是高水準的Python編程語言驅動的一個開源模型.視圖,控制器風格的Web應用程序框架,它起源於開源社區。使用這種架構,程序員可以方便、快捷地創建高品質、易維護、數據庫驅動的應用程序。這也正是OpenStack的Horizon組件採用這種架構進行設計的主要原因。另外,在Dj ango框架中,還包含許多功能強大的第三方插件,使得Django具有較強的可擴展性 [1] 。Django 項目源自一個在線新聞 Web 站點,於 2005 年以開源的形式被釋放出來。Django 框架的核心組件有:
Django(發音:[`dʒæŋɡəʊ]) Django 根據比利時的爵士音樂家Django Reinhardt命名,他是一個吉普賽人,主要以演奏吉它爲主,還演奏過小提琴等。由於Django在近年來的迅速發展,應用越來越廣泛,被著名IT開發雜誌SD Times評選爲2013 SD Times 100,位列“API、庫和框架”分類第6位,被認爲是該領域的佼佼者 架構設計Django已經成爲web開發者的首選框架,是一個遵循 MVC 設計模式的框架。MVC是Model、View、Controller三個單詞的簡寫,分別代表模型、視圖、控制器。Django其實也是一個MTV 的設計模式。MTV是Model、Template、View三個單詞的簡寫,分別代表模型、模版、視圖 [3] 。但是在Django中,控制器接受用戶輸入的部分由框架自行處理,所以 Django 裏更關注的是模型(Model)、模板(Template)和視圖(Views),稱爲 MTV模式。它們各自的職責如下:
從以上表述可以看出Django 視圖不處理用戶輸入,而僅僅決定要展現哪些數據給用戶,而Django 模板 僅僅決定如何展現Django視圖指定的數據。或者說, Django將MVC中的視圖進一步分解爲 Django視圖 和 Django模板兩個部分,分別決定 “展現哪些數據” 和 “如何展現”,使得Django的模板可以根據需要隨時替換,而不僅僅限制於內置的模板。 至於MVC控制器部分,由Django框架的URLconf來實現。URLconf機制是使用正則表達式匹配URL,然後調用合適的Python函數。URLconf對於URL的規則沒有任何限制,你完全可以設計成任意的URL風格,不管是傳統的,RESTful的,或者是另類的。框架把控制層給封裝了,無非與數據交互這層都是數據庫表的讀,寫,刪除,更新的操作。在寫程序的時候,只要調用相應的方法就行了,感覺很方便。程序員把控制層東西交給Django自動完成了。 只需要編寫非常少的代碼完成很多的事情。所以,它比MVC框架考慮的問題要深一步,因爲我們程序員大都在寫控制層的程序。這個工作交給了框架,僅需寫很少的調用代碼,大大提高了工作效率。
Django安裝1.安裝anaconda2.安裝Django使用pip安裝 注意! 在上面我們可以看到LTS版本(長期支持版本),這裏我建議使用LTS長期支持版本,在這我使用的是1.11 開始安裝(使用anaconda安裝) 1.創建一個anaconda環境 conda create -n djangoProject python=3.5 2.激活環境 conda activate djangoProject 3.在環境中安裝django pip install django==1.11.9 4.檢查是否安裝成功 pip freeze 若出現下面內容 則表明安裝成功 (djangoProject) ➜ myHexoBlog pip freeze absl-py==0.8.1 astor==0.8.0 autopep8==1.4.4 baidu-aip==2.2.18.0 cachetools==3.1.1 certifi==2019.9.11 chardet==3.0.4 Django==1.11.9 django-admin startproject HelloWorld $ cd HelloWorld/ $ tree . |-- HelloWorld | |-- __init__.py | |-- settings.py | |-- urls.py | `-- wsgi.py `-- manage.py python3 manage.py runserver 0.0.0.0:8000 END
若出現下面內容則表示安裝成功 接下來我們進入 HelloWorld 目錄輸入以下命令,啓動服務器:
目錄說明: 創建完成後我們可以查看下項目的目錄結構: 使用 django-admin 來創建 HelloWorld 項目: 創建第一個項目
|
|||||||||
---|---|---|---|---|---|---|---|---|---|
從以上表述可以看出Django 視圖不處理用戶輸入,而僅僅決定要展現哪些數據給用戶,而Django 模板 僅僅決定如何展現Django視圖指定的數據。或者說, Django將MVC中的視圖進一步分解爲 Django視圖 和 Django模板兩個部分,分別決定 “展現哪些數據” 和 “如何展現”,使得Django的模板可以根據需要隨時替換,而不僅僅限制於內置的模板。
至於MVC控制器部分,由Django框架的URLconf來實現。URLconf機制是使用正則表達式匹配URL,然後調用合適的Python函數。URLconf對於URL的規則沒有任何限制,你完全可以設計成任意的URL風格,不管是傳統的,RESTful的,或者是另類的。框架把控制層給封裝了,無非與數據交互這層都是數據庫表的讀,寫,刪除,更新的操作。在寫程序的時候,只要調用相應的方法就行了,感覺很方便。程序員把控制層東西交給Django自動完成了。 只需要編寫非常少的代碼完成很多的事情。所以,它比MVC框架考慮的問題要深一步,因爲我們程序員大都在寫控制層的程序。這個工作交給了框架,僅需寫很少的調用代碼,大大提高了工作效率。
Django安裝
1.安裝anaconda
2.安裝Django
使用pip安裝
注意!
在上面我們可以看到LTS版本(長期支持版本),這裏我建議使用LTS長期支持版本,在這我使用的是1.11
開始安裝(使用anaconda安裝)
1.創建一個anaconda環境
conda create -n djangoProject python=3.5
2.激活環境
conda activate djangoProject
3.在環境中安裝django
pip install django==1.11.9
4.檢查是否安裝成功
pip freeze
若出現下面內容 則表明安裝成功
(djangoProject) ➜ myHexoBlog pip freeze
absl-py==0.8.1
astor==0.8.0
autopep8==1.4.4
baidu-aip==2.2.18.0
cachetools==3.1.1
certifi==2019.9.11
chardet==3.0.4
Django==1.11.9
django-admin startproject HelloWorld
若出現下面內容則表示安裝成功
接下來我們進入 HelloWorld 目錄輸入以下命令,啓動服務器:
-
HelloWorld: 項目的容器。
-
manage.py: 一個實用的命令行工具,可讓你以各種方式與該 Django 項目進行交互。
-
HelloWorld/init.py: 一個空文件,告訴 Python 該目錄是一個 Python 包。
-
HelloWorld/settings.py: 該 Django 項目的設置/配置。
-
HelloWorld/urls.py: 該 Django 項目的 URL 聲明; 一份由 Django 驅動的網站"目錄"。
-
HelloWorld/wsgi.py: 一個 WSGI 兼容的 Web 服務器的入口,以便運行你的項目。
目錄說明:
創建完成後我們可以查看下項目的目錄結構:
使用 django-admin 來創建 HelloWorld 項目:
$ cd HelloWorld/
$ tree
.
|-- HelloWorld
| |-- __init__.py
| |-- settings.py
| |-- urls.py
| `-- wsgi.py
`-- manage.py
python3 manage.py runserver 0.0.0.0:8000
END