這是本文件的舊版!
勞動部勞發署 產業人才投資方案 ~ 委辦職訓課程規劃草案
Python Django 網站應用程式設計實務班
課程大綱
- 總時數: 48 小時 (8 天,每天 6 小時)
- day 1 ~ am
- 課程簡介
- Django 全端網頁應用框架簡介
- Django 開發環境設置
- day 1 ~ pm
- Django 專案開發實作初體驗 ~ 採用官網「Polls 民調問卷」範例
- day 2 ~ am
- Django ORM 簡介
- 物件化的 ORM 與 傳統的 ER-Model 之異同
- 採用 Django ORM 物件化的存取指令 取代 SQL Script 腳本
- Models 之間的對應關係 ~ relationships
- Django shell 及 dbshell 工具簡介
- Django Model Migration 資料遷移工具的運作原理與操作
- 資料匯入、匯出、備份、複製、遷移的各種方法、考量、與適用時機
- Django ORM 進階查詢及應用
- day 2 ~ pm
- Django 內建的 Admin Site 管理網站 簡介
- 客製化、擴增 Admin Site 管理網站 功能
- day 3 ~ am
- Django MTV (Model–Template–View) Design Pattern 設計模式 簡介
- URL Router (網址架構) 與 View (視圖函數) 的對應
- Django View 的三種實作方式
- day 3 ~ pm
- Django Template 語法介紹
- 在 View 中執行查詢或統計、並將結果結合 Template 輸出於前端網頁
- 資料視覺化 ~ Echarts 網頁圖表繪製工具 簡介
- 搭配 Python Pyecharts Module 以生成 ECharts 圖表頁面
- day 4 ~ am
- 導入 RWD 技術、採用 Bootstrap 來優化前端頁面
- 應用 Django 內建的 messages 框架,來傳遞各種提示訊息至前端頁面
- 採用 django-simple-captcha 模組,在登入時提供 CAPTCHA 圖形驗證碼
- day 4 ~ pm
- 表單 ~ Django Forms 與 Django Model Forms
- 表單集 ~ Django Inline Formset 與 Django Model Formset
- 在同一個 Template 頁面中編輯 one-to-many 關聯模型資料
- day 5 ~ am
- Django View / Form / Fomset / Widget 與 Template 整合應用
- Django FileField 檔案型欄位 之 上傳、下載 應用
- OS 實體儲存位置配置 及 上傳的實體檔案管理
- 對應的下載連結 URL 設定
- day 5 ~ pm
- 採用 Python logging module 實作後端日誌管理
- 資料庫效能優化 與 Django 語法應用最佳化
- Django QuerySet 及其進階查詢技巧
- 後臺系統 與 前端網頁 之間的 即時互動
- 在前端網頁中,透過 JavaScript 的 AJAX 或 Fetch 功能,來呼叫後臺 HTTP API
- 在後臺實作 WebSocket Server,並於前端網頁透過 WebSocket 與後臺進行雙向互動
- day 6 ~ am
- RESTful API 簡介
- Django REST Framework (DRF) 簡介、安裝、設定
- DRF 官網範例實作
- 比較 Django 的 Form 與 DRF 的 Serializer,有哪些異同之處?
- Django 專案中 Resource URL 的配置與優化
- day 6 ~ pm
- Sessions 與 Cookies 簡介
- 客製化 Django 的 Sessions Framework
- Django 預設的 Auth User Model 及認證與授權管理
- 客製化 Django User Model
- day 7 ~ am
- 為 Django 建立另一套可並存的「Authentication 認證模組」及「Permission 授權模組」
- JSON Web Tokens (JWT) 認證架構簡介與範例實作
- 加裝 Python SimpleJWT Module,藉以擴充 Django 及 DRF,導入 JWT 認證架構
- day 7 ~ pm
- 透過 OAuth 導入第三方(如:Google, Facebook, LINE 等)所提供的開放身份驗證機制
- OAuth 2.0 簡介
- 使用 Django-allauth 整合社群登入(以 Google Account 為例)
- 導入完善的的授權配置、並防堵不當存取
- day 8 ~ am
- 關於 UI/UX 國際化的考量 ~ 語言、時區、貨幣
- 在 Django 專案中 建立國際化 (i18n) 多語系環境
- 需要翻譯的對象: Data Model (Content) / Python code (Message) / UI (Template)
- 步驟: 啟用多語系功能、標記可翻譯的字串、生成訊息文件、翻譯文件,並設定語系切換
- 搭配前端 Browser Cookies,以記錄使用者選定的語系
- 正確處理因不同時區 Timezone 所衍生的轉換問題(含:後臺、前端、及 RESTful API)
- day 8 ~ pm
- Django 專案開發中的測試與除錯
- Django 自動化測試 Automated Testing
訓練班別計畫表
🔸 訓練需求調查
3. 訓練需求概述:
- 近年來,因氣候變遷加劇,引起了全球社會的關注,為了環境永續,節能減碳及能源轉型的相關政策或議題已成為國際性的主流盛事。
- 身為地球公民或背負企業社會責任的一份子,除了配合政府政策之外,還有哪些層面是我們可以再進一步著墨改善的呢?
或許從「智能建築、智慧家居、智慧能源、智能農業、智能工廠、環境監測、車隊管理、智能運輸」等幾個主題來下手會是個解方。 - 開始探究這些技術時發現它們有個共同點,也就是都有一個「物聯網整合平臺」做為管理基礎。透過這個平臺,即時的環境監控訊息或裝置訊息才得以收集,自動化的應對策略或演算法才得以運行,進而達到節能減碳最佳化的目標。
- 本訓練課程可以激發更多的公眾的來參與這項盛事,透過學習「微控板、物聯網、車隊管理 整合平臺」的相關技術並應用於職場上,讓企業更有能力、也更積極來參與節能減碳的實踐,提升企業形象,滿足社會對永續發展的期望。
🔸 訓練目標
1. 單位核心能力介紹:
2. 知識:
- 本課程涵蓋四大單元,分別為:㈠ 基礎導論、㈡ Node-RED 物聯網整合平臺、㈢ ESP32 微控板 + MicroPython 應用程式開發、㈣ OwnTracks / Traccar 定位追蹤系統、並於課程結束前採分組方式進行專題製作及展示。
- 課程設計旨在將「物聯網、微控板、車隊管理」等同一系列的相關技術整併於一個課程中來加以闡述及實作,以使學員能融會貫通物聯網的相關知識及應用。
- 單元一:物聯網導論,並介紹物聯網常用的幾種通訊協定。
- 單元二:引用 Node-RED 視覺化 IoT 應用程式開發工具,它是以 Web Application 的形式來扮演 IoT 的訊息控制中心,並提供簡易且可客製化的頁面設計,為「物聯網中央控制平臺」提供了快速導入的解決方案。
- 單元三:先從各類微控板及感測裝置的組裝配線講起,然後介紹幾款常用的微控板應用程式開發工具。首先以 ESPHome 開發基本應用範例,隨後採用 MicroPython 來開發客製化的應用程式,並示範微控板如何驅動各類型的感測裝置,也展示了如何透過各種網路通訊協定來與外部系統連結,以形成物聯網架構。
- 單元四:介紹 Traccar 平臺,分別用於 人員定位追踨 及 車隊管理,將物聯網的應用推及至「人車即時位置的感知」層面。
- 課程最後,再透過分組專題實作來集思廣益、應證所學,並期許學員回到工作崗位上能應用在其他相關的領域,如:智慧能源、智能農業、智慧工廠、環境監測、車隊追蹤、智慧家居、智能零售、智慧物聯網 等。
3. 技能:
- 能架設 Node.js 後端 JavaScript 程式開發工具,亦能架設 Node-RED Server。
- 能透過 Node-RED 視覺化開發工具,來建置各類 IoT 應用程式的 Flow 流程。
- 能客製化 Node-RED Dashboard 儀表板,來與使用者進行互動,或與外部系統整合。
- 能使用 Node-RED 開發 MVC 架構的網頁應用程式,並將感測器資料存入資料庫中。
- 能理解各類微控板及感測裝置的各種 GPIO 引腳配置、規格、及用途,如:Digital, Analog, Touch, PWM, UART, I2C, SPI 等。
- 能操作 Thonny 或 Arduino Lab for MicroPython 整合開發工具,來管理或執行 微控板中的 MicroPython 程式。
- 能善用 MicroPython 來開發 ESP32 微控板 及 各類感測裝置的 應用程式
- 能善用各種物聯網常用的通訊協定,如:TCP Socket, MQTT, HTTP, CoAP, RTSP 等,來開發應用程式,並與外部系統相互溝通。
- 能擷取網路上的 Open Data 開放資料,來模擬 IoT Sensor。
- 能透過手機 OwnTracks App 經由 MQTT Server 將 GPS 即時經緯度座標傳給任何接收端。
- 能在網頁中透過 MQTT over WebSocket 取得資料來源中的經緯度座標,並更新至網頁地圖上。
- 能架設 Traccar Server 建構車隊管理系統,在網頁地圖中實現車輛的位置追蹤、資料收集和管理。
4. 學習成效:
- 培養實務經驗: 透過課程中豐富的實作範例,學員將能夠實際動手應用所學知識,獲得實戰經驗。
- 問題解決技巧: 課程中留有諸多的衍生題目,學員將面臨各種挑戰,也將提升解決問題的能力。
- 團隊協作能力: 分組專題的設計和實作,將培養學員的團隊協作與溝通能力。
- 創意思維培養: 學員透過設計和展示專案,培養創意思維,將理論知識轉化為創新的實踐應用。
5. 職能級別:
🔸 學員資格
- 學歷:高中/職(含)以上
- 資格條件:
- 具備電腦基本操作能力。
- 對 Python 程式語言稍具概念者。
- 對 HTML、CSS 網頁製作 及 JavaScript 程式語言稍具概念者。
- 對 SQL 關聯式資料庫稍具概念者。
🔸 訓練費用編列說明
- 材料費估計:
- 無
🔸 課程使用軟體(開發環境)
- Python v3
- Visual Studio Code
- MariaDB / MySQL Database Server