iT邦幫忙

2022 iThome 鐵人賽

DAY 3
0

Day3 Django?我很好奇!

Django 介紹

Django 是一個基於 Python 的免費開源網路框架,可以非常快速的建立『 完整、安全、可維護、可擴展』網站。

Django 的起源

Django 念作 JANG-oh (D不發音),是以一位吉普賽爵士吉他手 Django Reinhardt 的名字命名。

在最初由美國堪薩斯勞倫斯郡一間名為 World Online 的報紙網路部門所開發,現在則由一個國際的志願者團隊經營。

Django 的特色

  1. 開箱即用

    Django 本身就包含了許多功能,讓開發者可以更專注在開發需求上,包括身份驗證、管理端、網站地圖、RSS 等。

  2. 良好的安全保護

    Django 也自帶各種防護機制,包括跨站腳本 XSS 保護、跨站請求 CSRF 保護、防止 SQL 注入、點擊劫持、支援SSL、標頭驗證、CORS 策略、Session 安全、上傳內容限制等等。讓剛接觸的開發者也能快速建立一個安全的網站。

  3. 可擴充性

    Django 基於『 無共享 』的架構,清晰的將每個部分進行分離,可以在不同等級的硬體上進行擴充,例如資料庫、快取資料庫或是 web 應用程式。

  4. 可維護性

    Django 的基本目標是低耦合和高內聚(也就是各層不會相互了解)。使用更少的程式碼,且遵循著不重複自己原則( DRY),明確勝於晦澀(不要使用太多魔術讓人無法理解程式碼),在所有層級皆保持一致性(從 Coding Style 到 Django 體驗)

  5. 龐大的社群

    不只有繁榮的社群、還有豐富的文件、很多免費與付費的套件與解決方案。只要你需求的也有人想過,很可能就會找到已經造好輪子,或是在社群上找到志同道合的夥伴一起打造新輪子。

核心架構 —— MTV

很可能你有聽過 MVC(Model-View-Controller) —— 是一種軟體設計模式,目的是將軟體的程式邏輯與顯示渲染清楚的分離,在 Django 也有相似的設計名為 MTV。

Django 的 MTV 架構是由 模型 Model 、模板 Template 、視圖 View 三者組成,

  1. Model 模型

    模型用於明確定義資料的基本欄位與行為的 Python 物件,並且提供與資料庫進行新增修改刪除查詢的機制,通常一個 Model 就會對應一張資料表。

  2. Template 模板

    模板是定義 HTML 頁面(也可能是其他類型)的結構文件,Django 有自己的模板語言(Django template lanugaue 簡稱 DTL),先經由 API 進行預處理與從 View 取得上下文資料,再透過 DTL 動態的將資料插入到模板中進行頁面渲染,最後生成 HTML 進行呈現。

  3. View 視圖

    視圖是一個接受到網路的請求後,返回的 Python 函數。視圖函數可以是任意邏輯、它通常會向 Model 模型訪問取得需求的資料,並將結果轉換為要響應的格式,這個響應可以是 HTML、 重新導向、XML、JSON 或是任何形式,最終會將響應傳遞給 Template 模板。

身處 Django 的世界中,總是可以找到適合自己的元素,可以快速開發也可以深入鑽研,有安全保護也能夠自由創造,這也是筆者喜歡 Django 的原因。接下來即將開始我們的旅程『 建造地基!使用 Docker 』。


上一篇
Day2 多租戶架構好吃嗎?能給我多少好處?
下一篇
Day4 建造地基!使用 Docker
系列文
全能住宅改造王,Django 多租戶架構的應用 —— 實作一個電商網站30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言