Django簡介、ORM、核心模塊

Django簡介

    Django是一種開源的大而且全的Web應用框架,是由python語言來編寫的。他採用了MVC模式,什麼是MVC?大家不要着急,MVC這麼好的東西我在下面會精細的講一下!Django最初是被開發來用於管理勞倫斯出版集團下的一些以新聞爲主內容的網站。一款CMS(內容管理系統)軟件。並於 2005 年 7 月在 BSD 許可證下發布。這套框架是以比利時的吉普賽爵士吉他手 Django Reinhardt 來命名的。

Django版本

至今Django版本已經更新到Django3.0.5,官網下載https://www.djangoproject.com/download/

Django最新版本

說到Django版本不得不提及python版本,Python3.8 的熱乎勁還沒過去,Python 就又雙叒叕要更新了。近日,3.9 版本(https://www.python.org/downloads/release/python-390a4/)的第四個 alpha 版已經開源。從文檔中,我們可以看到官方透露的對 dict、math 等組件增加的新特性,以及下一步的開發進展。

Python最新版本

Django優點

強大的數據庫功能

    用 python 的類繼承,幾行代碼就可以擁有一個豐富、動態的數據庫操作接口(API),如果需要,你也能執行 SQL 語句ORM(Object-Relational Mapping“對象-關係-映射”),它實現了數據模型與數據庫的解耦,即數據模型的設計不需要依賴於特定的數據庫,通過簡單的配置就可以輕鬆更換數據庫

自帶強大的後臺功能

    在admin.py中寫入需要實現功能的代碼,幾行簡單的代碼就可以實現你當管理員的夢。再也不用爲設計管理員而發愁了!

優雅的網址

    在urls.py中用正則匹配網址,傳遞到對應的函數,隨意你自己定義,網址可以如你所想,如你所願。(需要注意的是:正則是一種獨立的語法,並不是哪個語言所擁有的。)

具有模板系統

    模板系統大大的降低了開發者頭疼腦熱的概率。因爲模板系統設計簡單,容易擴展。代碼,樣式分開設計。查找更清晰,修改更容易!

緩存系統

    Django和memcached、redis或者其他的緩存系統聯用,提高了頁面的加載速度。讓用戶的體驗度更好了!

templates 文件夾views.py 中的函數渲染 templates 中的 Html 模板,得到動態內容的網頁,當然可以用緩存來提高速度。

國際化

    這麼好的東西,想不走上國際化都難啊。想要網頁顯示不同語言,比如中文、英文、還有各種語言。只需要在一個文件的設置中稍微那麼修改一下。頁面就會穿上各種語言的外衣。

Django 的 App 理念很好。

    App 可插拔,是不可多得的思想。不需要了,可以直接刪除,對系統影響不大。

怎麼樣?Django是否強大到不可想象的地步了?不過大家也不用高興的太早了。因爲代碼還是要寫的,只不過用上了Django開發網站的時候更快速,更便捷了而已!

Django具有以下特點:

  • 功能完善、要素齊全:該有的、可以沒有的都有,常用的、不常用的工具都用。Django提供了大量的特性和工具,無須你自己定義、組合、增刪及修改。但是,在有些人眼裏這被認爲是‘臃腫’不夠靈活,發揮不了程序員的主動能力。(一體機和DIY你更喜歡哪個?^-^)
  • 完善的文檔:經過十多年的發展和完善,Django有廣泛的實踐經驗和完善的在線文檔(可惜大多數爲英文)。開發者遇到問題時可以搜索在線文檔尋求解決方案。
  • 強大的數據庫訪問組件:Django的Model層自帶數據庫ORM組件,使得開發者無須學習其他數據庫訪問技術(SQL、pymysql、SQLALchemy等)。當然你也可以不用Django自帶的ORM,而是使用其它訪問技術,比如SQLALchemy。
  • 靈活的URL映射:Django使用正則表達式管理URL映射,靈活性高。
  • 豐富的Template模板語言:類似jinjia模板語言,不但原生功能豐富,還可以自定義模板標籤。
  • 自帶免費的後臺管理系統:只需要通過簡單的幾行配置和代碼就可以實現一個完整的後臺數據管理控制平臺。
  • 完整的錯誤信息提示:在開發調試過程中如果出現運行錯誤或者異常,Django可以提供非常完整的錯誤信息幫助定位問題。

好了,開始正式跟大家說MVC 、MVT、ORM

大部分開發語言中都有 MVC

MVC 框架的核心思想是: 解耦.即數據模型的設計不需要依賴於特定的數據庫,通過簡單的配置就可以輕鬆更換數據庫

降低各功能模塊之間的耦合性,方便變更,更容易重構代碼,最大程度上實現代碼的重用

M 表示 model,主要用於對數據庫層的封裝

V 表示 view,用於向用戶展示結果

C 表示 controller,是核心,用於處理請求、獲取數據、返回結果

M代表的是模型(Model), V代表的是視圖(View), C代表的是控制(Contrle)

MVT

Django 是一款 python 的 Web 開發框架

與 MVC 有所不同,屬於 MVT 框架(是不是跟沒說一樣?不過我真的找不到更合適的語句了)

M 表示 model,負責與數據庫交互

V 表示 view,是核心,負責接收請求、獲取數據、返回結果

T 表示 template,負責呈現內容到瀏覽器

什麼是ORM?

 

給大家一個圖吧:

 

最後在給大家說一下Django中的核心模塊:在堅持一下就看完了

Django核心模塊

urls.py

網址入口,關聯到對應的 views.py 中的一個函數(或者 generic 類),訪問網址就對應一個函數。小心在設置函數的時候寫錯單詞哦!

views.py

處理用戶發出的請求,從 urls.py 中對應過來, 通過渲染 templates 中的網頁可以將一些想要看到的內容輸入到網頁上。

models.py

與數據庫操作相關,存入或讀取數據時用到這個,當然用不到數據庫的時候 你可以不使用。

forms.py

表單,用戶在瀏覽器上輸入數據提交,對數據的驗證工作以及輸入框的生成等工作。

templates 文件夾

views.py 中的函數渲染 templates 中的 Html 模板,得到動態內容的網頁,當然可以用緩存來提高速度。這麼好的東西,不用確實可惜!

admin.py

後臺,這個就是可以用很少代碼就能實現後臺管理的神奇東東

settings.py

Django 的設置,配置文件,比如 DEBUG 的開關,靜態文件的位置等。

結語

總之,Django的功能很強大,包括DRF等一些框架,要學的還有很多,一起加油哇

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章