文章目錄
- 零、本講學習目標
- 一、課程匯入
- (一)課程簡介
- (二)課程概述
- 二、新課講授
- (一)Django簡介
- (二)Django版本
- (三)Django與Python的對應關系
- (四)Django的特點
- 1、物件關系映射
- 2、URL設計
- 3、模板系統
- 4、表單處理
- 5、Cache系統
- 6、Auth認證系統
- 7、國際化
- 8、Admin后臺系統
- (五)MVC模式
- (六)MVC的優勢
- (七)MVT模型
- (八)HTML、CSS與JavaScript
- 1、HTML
- 2、CSS
- 3、JavaScript
- 三、課堂小結
- 四、課后作業
- 五、拓展內容
- (一)HTML在線學習
- (二)CSS在線學習
- (三)JavaScript在線學習
- (四)Python在線學習
- (五)Django在線學習
零、本講學習目標
- 復述BSD、MVC和MVT的含義
- 了解DJango簡介、版本以及與Python版本之間的對應關系
- 復述DJango特點
- 復述MVC的優勢
一、課程匯入
(一)課程簡介
- 學分:4
- 學時:64,16*4,考查
- 成績評定:20%(考勤)+30%(作業)+50%(期末檢測)
(二)課程概述
- Django是開源的Web應用框架,基于Python語言,學習Django需要有HTML、CSS和JavaScript基礎,
- Django在線學習教程:https://www.runoob.com/django/django-tutorial.html

二、新課講授
(一)Django簡介
- Django遵守BSD著作權,初次發布于2005年7月,并于2008年9月發布了第一個正式版本 1.0,
- BSD(Software Distribution,伯克利軟體套件)許可證是隨著加州大學伯克利分校發布BSD UNIX發展起來的,修改版本被Apple、Apache所采用,
- BSD協議是“寬容自由軟體許可證”中的一員,在軟體復用上給予了最小限度的限制,BSD協議允許作者使用該協議下的資源,將其并入私人版本的軟體,該軟體可使用閉源軟體協議發布,
- BSD詳見百度百科:https://baike.baidu.com/item/BSD/3794498?fr=aladdin
- Django采用
MVT軟體設計模式,即模型(Model),視圖(View)和模板(Template),
(二)Django版本

(三)Django與Python的對應關系
| Django版本 | Python版本 |
|---|---|
| 1.8 | 2.7, 3.2 , 3.3, 3.4, 3.5 |
| 1.9, 1.10 | 2.7, 3.4, 3.5 |
| 1.11 | 2.7, 3.4, 3.5, 3.6 |
| 2.0 | 3.4, 3.5, 3.6, 3.7 |
| 2.1, 2.2 | 3.5, 3.6, 3.7 |
| 3.0, 3.1 | 3.6, 3.7, 3.8 |
(四)Django的特點
1、物件關系映射
(Object Relational Mapping,ORM):通過定義映射類來構建資料模型,將模型與關系資料庫連接起來,使用ORM框架內置的資料庫介面可實作復雜的資料操作,
2、URL設計
開發者可以設計任意的URL(網站地址),而且還支持使用正則運算式設計,
3、模板系統
提供可擴展的模板語言,模板之間具有可繼承性,
4、表單處理
可以生成各種表單模型,而且表單具有有效性檢驗功能,
5、Cache系統
完善的快取系統,可支持多種快取方式,
6、Auth認證系統
提供用戶認證、權限設定和用戶組功能,功能擴展性強,
7、國際化
內置國際化系統,方便開發出多種語言的網站,
8、Admin后臺系統
內置Admin后臺管理系統,系統擴展性強,
(五)MVC模式
MVC模式(Model–View–Controller)是軟體工程中的一種軟體架構模式,把軟體系統分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller),MVC 以一種插件式的、松耦合的方式連接在一起,
- 模型(M)- 撰寫程式應有的功能,負責業務物件與資料庫的映射(ORM),
- 視圖(V)- 圖形界面,負責與用戶的互動(頁面),
- 控制器(C)- 負責轉發請求,對請求進行處理,
MVC簡易圖:

用戶操作流程圖:

(六)MVC的優勢
- 低耦合
- 開發快捷
- 部署方便
- 可重用性高
- 維護成本低
(七)MVT模型
Django 的 MTV 模式本質上和MVC是一樣的,也是為了各組件間保持松耦合關系,只是定義上有些許不同,Django的MTV分別是指:
- M表示模型(Model):撰寫程式應有的功能,負責業務物件與資料庫的映射(ORM),
- V表示視圖(View):負責業務邏輯,并在適當時候呼叫Model和Template,
- T表示模板(Template):負責如何把頁面(html)展示給用戶,
除了以上三層之外,還需要一個 URL分發器,它的作用是將一個個URL的頁面請求分發給不同的View處理,View再呼叫相應的 Model 和Template,MTV 的回應模式如下所示:

MVT簡易圖:

用戶操作流程圖:

用戶通過瀏覽器向我們的服務器發起一個請求(request),這個請求會去訪問視圖函式:
- 如果不涉及到資料呼叫,那么這個時候視圖函式直接回傳一個模板也就是一個網頁給用戶,
- 如果涉及到資料呼叫,那么視圖函式呼叫模型,模型去資料庫查找資料,然后逐級回傳,
- 視圖函式把回傳的資料填充到模板中空格中,最后回傳網頁給用戶,
(八)HTML、CSS與JavaScript
- 網站開發可以分為前端和后端開發,前端開發是指網頁設計,我們在瀏覽器看到網站的圖片、文字、音樂視頻等內容排版都是由前端開發人員實作的;后端開發是為前端開發提供實際的資料內容和業務邏輯,比如提供文字內容、圖片和音樂視頻的路徑地址等資訊,
- 前端開發人員必須掌握HTML、CSS和JavaScript的基礎語言,這些基礎語言上延伸了許多前端框架,比如jQuery、Bootstrap、Vue、React和AngularJS等,后端開發人員必須掌握一種或多種后端開發語言、資料庫應用原理、Web服務器應用原理和基礎運維技術,目前較為熱門的后端開發語言分別有Java、PHP、Python和GO語言;資料庫為MySQL、MSSQL、Oracle和Redis等,盡管明確劃分了網站開發的職責,在實際作業中,特別是一些中小企業,他們也要求后端開發人員必須掌握前端開發技術,但無須精通前端開發,只要掌味訓本的應用開發即可,比如調整網站布局或撰寫簡單的JavaScript腳本,
1、HTML
HTML是超文本標記語言,標準通用標記語言下的一個應用,“超文本”就是指頁面內可以包含圖片、鏈接,甚至音樂、程式等非文字元素,超文本標記語言的結構包括“頭”部分(Head)和“主體”部分(Body),其中“頭”部分提供關于網頁的資訊,“主體”部分提供網頁的具體內容,
2、CSS
- HTML代碼是保存在后綴名為.html的檔案,而CSS樣式是保存在后綴名為.css的檔案,然后在HTML代碼中呼叫CSS樣式檔案,由于HTML代碼中會存在多個不同的元素,并且每個元素的網頁布局各不相同,因此需要使用CSS選擇器定位每個HTML元素,然后再撰寫相應的CSS樣式,
- CSS選擇器劃分了多種型別,同一個HTML元素可以使用不同的CSS選擇器進行定位,實際開發中最常用的CSS選擇器分別為:類別選擇器、標簽選擇器、ID選擇器、通用選擇器和群組選擇器,使用這些CSS選擇器可以實作HTML元素的網頁布局,
3、JavaScript
JavaScript(簡稱“JS”)是一種具有函式優先的輕量級、解釋型的編程語言,它是因為開發Web頁面的腳本語言而出名的,但是也被用到了很多非瀏覽器環境中,JavaScript基于原型編程、多范式的動態腳本語言,并且支持面向物件、命令式和宣告式的編程風格,簡單來說,JavaScript是能被瀏覽器解釋并執行的一種編程語言,JavaScript可以在HTML檔案里撰寫,但在企業開發中也是采用HTML和JavaScript代碼分離,
三、課堂小結
- 了解Django簡介、版本以及與Python版本之間的對應關系
- 識記DJango特點
- 了解MVC的優勢
- 理解MVC模型和MVT模型
四、課后作業
- 復習HTML相關知識
- 復習CSS相關知識
- 復習JavaScript相關知識
五、拓展內容
(一)HTML在線學習
- https://www.runoob.com/html/html5-intro.html(主要)
https://www.w3school.com.cn/tags/html_ref_language_codes.asp(輔助)
https://www.techbrood.com/tagsref(輔助)
(二)CSS在線學習
- https://www.runoob.com/css/css-tutorial.html(主要)
https://www.runoob.com/css3/css3-tutorial.html(主要CSS3)
(三)JavaScript在線學習
- https://www.runoob.com/js/js-tutorial.html(主要)
https://www.runoob.com/w3cnote/es6-tutorial.html(ES6教程)
(四)Python在線學習
- https://www.runoob.com/python/python-intro.html(主要)
- https://www.runoob.com/python3/python3-tutorial.html(主要Python3)
(五)Django在線學習
- https://www.runoob.com/django/django-tutorial.html(主要)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/295191.html
標籤:其他
