差異處
這裏顯示兩個版本的差異處。
| Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
|
open:mol:dj [2026/01/02 09:58] wenchin |
— (目前版本) | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | <text type="warning">勞動部勞發署 產業人才投資方案 ~ 委辦職訓課程規劃草案</text> | ||
| - | |||
| - | ====== Python Django 網站應用程式設計實務班 ====== | ||
| - | * 建議日期: 4/12、4/19、4/26、5/3、5/10、5/17、5/24、5/31、(6/7 備用) | ||
| - | |||
| - | \\ | ||
| - | ---- | ||
| - | |||
| - | <collapse id="syllabus"></collapse> | ||
| - | ===== 課程大綱 ===== | ||
| - | * 總時數: <text type="warning">48 小時 (8 天,每天 6 小時)</text> <WRAP> | ||
| - | <panel type="danger"> | ||
| - | * <badge><text type="warning">day 1 ~ am</text></badge> | ||
| - | * 課程簡介 | ||
| - | * Django 全端網頁應用框架簡介 | ||
| - | * Django 開發環境準備 | ||
| - | * 安裝 MariaDB, Python, Django, VS Code | ||
| - | * django-admin 及 manage.py 專案開發管理工具簡介 | ||
| - | * Django Project & App 建立與設定 | ||
| - | * Django REPL (Read-Eval-Print Loop) 互動式文字操作介面 ~ shell 及 dbshell 操作簡介 | ||
| - | |||
| - | |||
| - | \\ | ||
| - | * <badge><text type="warning">day 1 ~ pm</text></badge> | ||
| - | * Django 專案開發實作初體驗 ~ 採用官網「Polls 民調問卷」範例 | ||
| - | |||
| - | |||
| - | \\ | ||
| - | * <badge><text type="warning">day 2 ~ am</text></badge> | ||
| - | * Django ORM 簡介 | ||
| - | * 物件化的 ORM 與 傳統的 ER-Model 之異同 | ||
| - | * 採用 Django ORM 物件化的存取指令 取代 SQL Script 腳本 | ||
| - | * Models 之間的對應關係 ~ relationships | ||
| - | * Django Model Migration 資料遷移工具的運作原理與操作 | ||
| - | * 資料匯入、匯出、備份、複製、遷移的各種方法、考量、與適用時機 | ||
| - | * Django ORM 進階查詢及應用 | ||
| - | |||
| - | |||
| - | \\ | ||
| - | * <badge><text type="warning">day 2 ~ pm</text></badge> | ||
| - | * Django 內建的 Admin Site 管理網站 簡介 | ||
| - | * 客製化、擴增 Admin Site 管理網站 功能 | ||
| - | |||
| - | |||
| - | \\ | ||
| - | * <badge><text type="warning">day 3 ~ am</text></badge> | ||
| - | * Django MTV (Model–Template–View) Design Pattern 設計模式 簡介 | ||
| - | * URL Router (網址架構) 與 View (視圖函數) 的對應 | ||
| - | * Django View 的三種實作方式 | ||
| - | |||
| - | |||
| - | \\ | ||
| - | * <badge><text type="warning">day 3 ~ pm</text></badge> | ||
| - | * Django Template 語法介紹 | ||
| - | * 在 View 中執行查詢或統計、並將結果結合 Template 輸出於前端網頁 | ||
| - | * 資料視覺化 ~ Echarts 網頁圖表繪製工具 簡介 | ||
| - | * 搭配 Python Pyecharts Module 以生成 ECharts 圖表頁面 | ||
| - | |||
| - | |||
| - | \\ | ||
| - | * <badge><text type="warning">day 4 ~ am</text></badge> | ||
| - | * 導入 RWD 技術、採用 Bootstrap 來優化前端頁面 | ||
| - | * 應用 Django 內建的 messages 框架,來傳遞各種提示訊息至前端頁面 | ||
| - | * 為 Django 專案 建立系統功能選單 | ||
| - | * 採用 django-simple-captcha 模組,在登入時提供 CAPTCHA 圖形驗證碼 | ||
| - | |||
| - | |||
| - | \\ | ||
| - | * <badge><text type="warning">day 4 ~ pm</text></badge> | ||
| - | * 表單 ~ Django Forms 與 Django Model Forms | ||
| - | * 表單集 ~ Django Inline Formset 與 Django Model Formset | ||
| - | * 在同一個 Template 頁面中編輯 one-to-many 關聯模型資料 | ||
| - | |||
| - | |||
| - | \\ | ||
| - | * <badge><text type="warning">day 5 ~ am</text></badge> | ||
| - | * Django View / Form / Fomset / Widget 與 Template 整合應用 | ||
| - | * Django FileField 檔案型欄位 之 上傳、下載 應用 | ||
| - | * OS 實體儲存位置配置 及 上傳的實體檔案管理 | ||
| - | * 對應的下載連結 URL 設定 | ||
| - | |||
| - | |||
| - | \\ | ||
| - | * <badge><text type="warning">day 5 ~ pm</text></badge> | ||
| - | * 採用 Python logging module 實作後端日誌管理 | ||
| - | * 資料庫效能優化 與 Django 語法應用最佳化 | ||
| - | * Django QuerySet 及其進階查詢技巧 | ||
| - | * 後臺系統 與 前端網頁 之間的 即時互動 | ||
| - | * 在前端網頁中,透過 JavaScript 的 AJAX 或 Fetch 功能,來呼叫後臺 HTTP API | ||
| - | * 在後臺實作 WebSocket Server,並於前端網頁透過 WebSocket 與後臺進行雙向互動 | ||
| - | |||
| - | |||
| - | \\ | ||
| - | * <badge><text type="warning">day 6 ~ am</text></badge> | ||
| - | * RESTful API 簡介 | ||
| - | * Django REST Framework (DRF) 簡介、安裝、設定 | ||
| - | * DRF 官網範例實作 | ||
| - | * 比較 Django 的 Form 與 DRF 的 Serializer,有哪些異同之處? | ||
| - | * Django 專案中 Resource URL 的配置與優化 | ||
| - | |||
| - | |||
| - | \\ | ||
| - | * <badge><text type="warning">day 6 ~ pm</text></badge> | ||
| - | * Sessions 與 Cookies 簡介 | ||
| - | * 客製化 Django 的 Sessions Framework | ||
| - | * 為特定的網頁添加造訪計數器 | ||
| - | * Django 預設的 Auth User Model 及認證與授權管理 | ||
| - | * 客製化 Django User Model | ||
| - | |||
| - | |||
| - | \\ | ||
| - | * <badge><text type="warning">day 7 ~ am</text></badge> | ||
| - | * 為 Django 建立另一套可並存的「Authentication 認證模組」及「Permission 授權模組」 | ||
| - | * JSON Web Tokens (JWT) 認證架構簡介與範例實作 | ||
| - | * 加裝 Python SimpleJWT Module,藉以擴充 Django 及 DRF,導入 JWT 認證架構 | ||
| - | |||
| - | |||
| - | \\ | ||
| - | * <badge><text type="warning">day 7 ~ pm</text></badge> | ||
| - | * 透過 OAuth 導入第三方(如:Google, Facebook, LINE 等)所提供的開放身份驗證機制 | ||
| - | * OAuth 2.0 簡介 | ||
| - | * 使用 Django-allauth 整合社群登入(以 Google Account 為例) | ||
| - | * 導入完善的的授權配置、並防堵不當存取 | ||
| - | |||
| - | |||
| - | \\ | ||
| - | * <badge><text type="warning">day 8 ~ am</text></badge> | ||
| - | * 關於 UI/UX 國際化的考量 ~ 語言、時區、貨幣 | ||
| - | * 在 Django 專案中 建立國際化 (i18n) 多語系環境 | ||
| - | * 需要翻譯的對象: Data Model (Content) / Python code (Message) / UI (Template) | ||
| - | * 步驟: 啟用多語系功能、標記可翻譯的字串、生成訊息文件、翻譯文件,並設定語系切換 | ||
| - | * 搭配前端 Browser Cookies,以記錄使用者選定的語系 | ||
| - | * 正確處理因不同時區 Timezone 所衍生的轉換問題(含:後臺、前端、及 RESTful API) | ||
| - | |||
| - | |||
| - | \\ | ||
| - | * <badge><text type="warning">day 8 ~ pm</text></badge> | ||
| - | * Django 專案開發中的測試與除錯 | ||
| - | * Django 自動化測試 Automated Testing | ||
| - | |||
| - | </panel> | ||
| - | </WRAP> | ||
| - | |||
| - | |||
| - | |||
| - | \\ | ||
| - | ---- | ||
| - | ===== 訓練班別計畫表 ===== | ||
| - | ==== 🔸 訓練需求調查 ==== | ||
| - | <hidden> | ||
| - | === x1. 產業人力需求調查: === | ||
| - | * 政府所掌管的資料諸如:民政、地政、林務、水利、交通、氣象、空污等,經常需要透過 GIS 地理資訊系統來管理,並整合電子地圖以視覺方式來呈現。民間企業同樣也有許多GIS及電子地圖的應用,例如:區域銷售分析、連鎖店展店分析等等。 | ||
| - | * 依據經濟部工業局2020-2022資料服務產業專業人才需求推估調查、及經濟部產業人才發展資訊網 https://www.italent.org.tw/ePaperD/13/ePaper20200300008 當中的資料服務產業專業人才質性分析表中可以發現:資料分析師與資料工程師在招募情形上屬於「難」招募的狀況。因此,積極培訓這方面的人才,確實有其需要性及急迫性。 | ||
| - | |||
| - | \\ | ||
| - | === x2. 區域人力需求調查: === | ||
| - | * 2021-2023資料服務產業專業人才需求推估調查摘要 https://www.italent.org.tw/ePaperD/10/ePaper20210400006 當中論及資料服務產業的三大發展趨勢,包括:資料服務商機將因產業資料普及化而更為蓬勃發展、以場域為基礎的情境式服務應用為下世代潮流、資料共享生態圈是持續壯大與發揮資料價值之重要方法。 | ||
| - | * 人力需求領域主要以資料(Data)為核心,透過各種科技工具之規劃與應用,將資料附加價值最大化,以提供各種產品與服務,包括資料提供、資料處理、資料分析/應用、商業策略/顧問諮詢與完整解決方案服務(系統整合)等各類服務業者。 | ||
| - | |||
| - | </hidden> | ||
| - | === 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, I<sup>2</sup>C, 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. 學習成效: === | ||
| - | * 培養實務經驗: 透過課程中豐富的實作範例,學員將能夠實際動手應用所學知識,獲得實戰經驗。 | ||
| - | * 問題解決技巧: 課程中留有諸多的衍生題目,學員將面臨各種挑戰,也將提升解決問題的能力。 | ||
| - | * 團隊協作能力: 分組專題的設計和實作,將培養學員的團隊協作與溝通能力。 | ||
| - | * 創意思維培養: 學員透過設計和展示專案,培養創意思維,將理論知識轉化為創新的實踐應用。 | ||
| - | |||
| - | |||
| - | <hidden> | ||
| - | - 微控板應用技能: 學員將深入了解Arduino、ESP8266 / ESP32、Raspberry Pi Pico、BBC micro:bit等微控板的特性和應用,學會如何選擇、配置和操作不同類型的微控板。 | ||
| - | - 感測元件的應用: 學員將獲得各種感測器的知識,包括按鍵、繼電器、RGB LED、溫濕度感測器、光敏感測器、超音波測距等,並能夠將這些元件應用於實際專案中。 | ||
| - | - 物聯網通訊協定與技術: 學員將深入理解TCP/IP、MQTT、HTTP、CoAP等通訊協定,並學會使用Python進行相應的實作,連接設備與雲端。 | ||
| - | * 車隊管理系統的建立: 透過 Traccar Server 實現車隊追蹤與派遣管理,運用技術實現高效低碳的智慧運輸。 | ||
| - | |||
| - | - 感測元件與通訊協定的應用實務: 學員將透過實際操作學到如何搭建各種感測元件的電路,以及如何使用不同的通訊協定實現設備間的溝通。 | ||
| - | - 物聯網應用開發: 學員將能夠開發物聯網應用,包括資料的傳輸、遠端控制,並能夠將感測資料整合到雲端服務中。 | ||
| - | - 車隊管理系統的實現: 學員將學會使用Traccar Server,搭建車隊管理系統,實現車輛位置的追蹤和相關資料的管理。 | ||
| - | |||
| - | - 微控板程式開發: 學員將能夠使用C++(Arduino IDE)、MicroPython(Thonny)以及YAML(ESPHome)等工具進行微控板應用程式的開發。 | ||
| - | </hidden> | ||
| - | |||
| - | |||
| - | \\ | ||
| - | === 5. 職能級別: === | ||
| - | * :?: | ||
| - | |||
| - | |||
| - | <hidden> | ||
| - | === 1. 單位核心能力介紹: === | ||
| - | * 在此波數位變革引領下,整體環境隨之驟變,影響學校發展之重大因素,如何營造符合大趨勢變革之教育環境;由各院所專業發展掌握大數據、智慧家居、物聯網、智慧化、移動化、雲端運算及互動技術等外界環境變化,使教與學能與產業需求有更緊密結合,達到養成具國際觀之高競爭力人才之目標。 | ||
| - | |||
| - | |||
| - | \\ | ||
| - | === 2. 知識: === | ||
| - | * Google Maps 及 OpenStreetMap 電子地圖網頁應用程式開發 | ||
| - | * MongoDB 文件型資料庫系統 開發應用 | ||
| - | * HTML5 動態網頁開發、JavaSript 模組套件應用、RWD 響應式網頁設計 | ||
| - | * SPA 單一頁面應用程式設計、AJAX API 設計 | ||
| - | |||
| - | * 瞭解智慧家居與物聯網實作技術,能使用 Home Assistant 及 ESPHome 開源軟體,也能瞭解「智慧家居操控智慧化」最重要的核心元素,包含:整合 Integration、服務 Service、腳本 Script、場景 Scene、自動化 Automation 等機制,用以達成各類智慧家居、物聯網、雲端整合的應用目標。 | ||
| - | |||
| - | |||
| - | \\ | ||
| - | === 3. 技能: === | ||
| - | * 政府資料開放平臺 Open Data 資料格式 解析處理轉換 | ||
| - | * 使用 Node.js 在伺服器端運行 Web Server | ||
| - | * 開發 JavaScript 程式,執行在 Web Client 前端及 Web Server 後端 | ||
| - | * MongoDB 文件型資料庫系統應用、管理工具操作、MQL 資料庫操作語法 | ||
| - | * 應用 OpenStreetMap 開源地圖 以及 OpenLayers 開源地圖應用程式開發套件,開發各種網頁地圖應用程式 | ||
| - | * 應用 Google Cloud Platform 提供之 Google Maps Platform 及 Firebase Cloud Firestore 服務 | ||
| - | * 應用 Google Maps Platform 提供之各類 API,開發各種網頁地圖應用程式 | ||
| - | |||
| - | * 在智慧家居與物聯網的整合應用中,有許多技術彼此互相有所關聯,本課程擬打好各項技巧之基礎,並整合成為完整的應用。 | ||
| - | * 學員將具備 Home Assistant 與 ESPHome 的安裝、設定、開發應用能力,並能以 YAML 設定檔來量身打造客製化的智慧家居主控台面板,同時具備 MQTT 物聯網通訊的整合應用能力。 | ||
| - | |||
| - | \\ | ||
| - | === 4. 學習成效: === | ||
| - | * 能使用 OpenStreetMap 開放街圖 及 OpenLayers 開源地圖應用程式開發套件,開發相關地圖應用系統。 | ||
| - | |||
| - | * 能將即時的 Open Data 植入電子地圖中,例如: | ||
| - | * 繪製 YouBike 公共自行車 各站點可借車輛數 | ||
| - | * 繪製 指定公車路線的 所有站牌 | ||
| - | * 測速 (相機) 執法設置點 | ||
| - | |||
| - | * 能截取 Open Data,並存入 MongoDB,供地圖應用程式篩選查閱,例如: | ||
| - | * 將 新北市垃圾車所在位置 存入 MongoDB | ||
| - | * 從 MongoDB 中篩選某段期間的資料,並在地圖上繪製成移動軌跡 | ||
| - | |||
| - | * 能整合的感測元件,包含:繼電器、全彩 LED、光敏感測器、紅外線感應開關、溫濕度感測器、紅外線發射接收器、按鍵、LCD 顯示器、OLED 顯示器、Servo 伺服馬達、Camera 相機、空污偵測器 等整合應用。 | ||
| - | * 能整合到手機App應用的服務,包含:手機內建感測器、App 訊息通知、GPS 軌跡追蹤、QR-Code 掃瞄、IP Camera 監視器 等。 | ||
| - | * 能與異質系統或雲端應用服務整合,包含:RESTful API 介紹與範例實作、HA Cloud 服務轉接、IFTTT 雲端服務整合範例、發佈訊息到手機 LINE 群組 | ||
| - | </hidden> | ||
| - | |||
| - | |||
| - | |||
| - | \\ | ||
| - | ==== 🔸 學員資格 ==== | ||
| - | * 學歷:高中/職(含)以上 | ||
| - | * 資格條件: | ||
| - | - 具備電腦基本操作能力。 | ||
| - | - 對 Python 程式語言稍具概念者。 | ||
| - | - 對 HTML、CSS 網頁製作 及 JavaScript 程式語言稍具概念者。 | ||
| - | - 對 SQL 關聯式資料庫稍具概念者。 | ||
| - | |||
| - | |||
| - | \\ | ||
| - | ==== 🔸 訓練費用編列說明 ==== | ||
| - | * 材料費估計: | ||
| - | * 無 | ||
| - | |||
| - | |||
| - | |||
| - | \\ | ||
| - | ==== 🔸 課程使用軟體(開發環境) ==== | ||
| - | * Python v3 | ||
| - | * Visual Studio Code | ||
| - | * MariaDB / MySQL Database Server | ||