iT邦幫忙

2024 iThome 鐵人賽

DAY 1
1
Software Development

Django 2024: 從入門到SaaS實戰系列 第 2

Django in 2024: Web開發的全能選手

  • 分享至 

  • xImage
  •  

Django是一個基於python的網頁框架,遵循類似MVC(Model-View-Controller)的MTV(Model-Template-View)架構。Django擅長後台的開發,簡單的動態或是靜態網站設計以及輕量的API開發(不考慮第三方庫),而隨著更支援非同步系統,豐富的第三方庫讓Django依然是在網頁開發上以及API設計的選擇之一。

在前端頁面方面,Django使用Django template language (DTL)以及Jinja2輔助開發,也能整合常見的CSS框架(Tailwind, Bootstrap),或是HTMX等輕量化的函式庫。

後端方面則是透過ORM與資料庫打交道,並且可以在Models中額外添加CRUD觸發時的邏輯。除了原生的View(視圖)可以滿足輕量的API開發與邏輯處理外,也有DRF等套件來完善API的設計與安全性,是一個非常強大的"batteries included”框架。

Django的特點:

  1. 快速開發:內建許多功能,使用者不用再重新建立基本功能
  2. ORM(對象關係映射):內置ORM系統,可以使用python程式碼進行資料庫相關操作而不是使用SQL語法
  3. Admin:強大的admin管理系統,讓使用者更方便進行後台操作
  4. 安全性:內建安全特性,如XSS、CSRF與SQL注入等等
  5. 可擴展性:相當多的第三方庫,可以應付複雜的開發需求

Django的現況:

Django是基於python的web框架,雖然早在2005就推出,但是直到2024年仍然是非常穩定且可靠的框架之一,也有許多公司依然使用Django進行開發

Django與其他python web後端框架的比較:

1. Django vs Flask

  • Django:適合大型、複雜的項目,提供全面的功能
  • Flask:輕量級,適合小型項目或微服務架構

Django在大型項目中的優勢更加明顯,特別是在需要快速開發和維護的企業級應用中。

2. Django vs FastAPI

  • Django:全棧框架,適合普遍的Web應用
  • FastAPI:專注於API開發,非同步領域性能優越

隨著Django對非同步的支持不斷增強,這個差距正在縮小。但在調查中可以看出,在處理非同步部分還是不少人更偏好使用FastAPI。但在ORM相關部分,FastAPI就沒有內建的ORM語法,需要額外使用其他框架或是套件。

Django與前端框架的協作:

Django本來因為其方便的ORM以及DRF或是Django Ninga等第三方套件,所以很適合與三大前端框架進行協作。並且即使是像Nuxt與Next這樣接近全端的框架,因為Dajngo具備ORM、方便的admin以及認證與安全系統,所以這樣的前後端分離還是很合理並且具備一定優勢的開發模式。

Django的未來展望:

1. 非同步能力的增強

非同步在建立規模大且動態的網頁應用非常重要,相比於3.x版的Django,Django在4.1版擴展了非同步的ORM操作。Django 3.0引入了ASGI支持,加強對websocket的原生支持,結合Django Channels可以做出實時數據更新的應用(即時通知、聊天室)

2. 微服務支持

微服務盛起,Django雖然沒有內置微服務的架構,但是透過一些第三方套件能彌補其中的不足

3. AI崛起

隨著AI崛起,Django也是構建AI web應用的理想平台,因為具備處理高流量與數據密集的AI應用,並且能輕鬆集成python的相關庫(TensorFlow, PyTorch)

進入2024年,Django依然是現代Web開發的全能選手。它的穩定性、全面性和強大的生態系統使其在網頁開發中占據重要地位。雖然面臨來自輕量級框架和專用API框架的挑戰,但Django通過不斷創新和適應新技術趨勢,繼續保持其獨特的優勢。


上一篇
雖然老套但是不可避免的前言
下一篇
Django in 2024: Django架構深度解析
系列文
Django 2024: 從入門到SaaS實戰31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言