這是本文件的舊版!
勞動部勞發署 產業人才投資方案 ~ 委辦職訓課程規劃草案
Python Django 基礎之 SQL 資料庫、JavaScript 動態網站、物件導向設計 先修班
課程大綱
🔸總時數: 36 小時 (6 天,每天 6 小時) 最終版
- Day 1:Python 物件導向、進階特性、與非同步程式設計
- 物件導向 OOP 核心概念與實作
- 類別 Class 與物件 Object 的概念與實作體驗
- 屬性、方法與特殊建構式 (init, str, repr)
- 封裝 Encapsulation、繼承 Inheritance 與多型 Polymorphism 在實務上的應用
- super() 函數與多重繼承概論
- Python Module and Package 模組和套件
- 函數進階與 Decorator 裝飾器
- 一級函數 First-Class Functions 與閉包 Closures 的概念
- Python Decorator:原理解析與自訂裝飾器實作
- 帶參數的裝飾器與 functools.wraps 的應用
- 裝飾器在 Web 框架中的常見情境(如:權限驗證、路由註冊預熱)
- Python 非同步程式設計 Asynchronous Programming
- 同步 Synchronous 與非同步 Asynchronous 的效能差異與應用場景
- 深入理解 asyncio 模組與 Event Loop 事件迴圈
- async 與 await 語法實戰:建立非同步任務與並行處理
- 非同步設計在現代 I/O 密集型 Web 應用中的重要性
- Day 2:關聯式資料庫基礎、進階 SQL 操作、與 Python SQL Client
- 關聯式資料庫與 ERD 實體關聯設計
- 關聯式資料庫 MariaDB 概念、與各款 DB Client 操作管理工具
- 資料庫正規化 Normalization 原則
- 實體關係圖 ERD / ER-Model 繪製與系統架構分析
- SQL 基礎回顧與 DDL 資料定義語言 實作
- 複雜資料查詢與操作 SQL DML & DQL
- 多表關聯查詢:INNER JOIN, LEFT/RIGHT JOIN, FULL OUTER JOIN
- 聚合函數 SUM, AVG, COUNT 與資料分組 GROUP BY, HAVING
- 子查詢 Subqueries 與視圖 Views 的應用
- Python SQL Client 實務
- 使用 Python 擴充套件 mysqlclient / pymysql 連線 SQL 資料庫
- 透過 Python 執行原生 SQL 語法 ~ 以 CRUD 操作為例
- 資料指標 Data Cursor 的操作
- 資料庫交易 DB Transaction 管理 ~ Commit 與 Rollback
- 防範 SQL Injection 攻擊:參數化查詢 Parameterized Queries
- Day 3:從 ERD 到 ORM 的典範轉移
- Database Schema 設計與 ORM 映射思維
- 物件關聯對映 ORM (Object-Relational Mapping) 簡介
- 由 ERD 改為 ORM ~ 如何將「資料表 Tables」轉換為「類別 Classes」,將「紀錄 Rows」轉換為「物件 Objects」?
- 關聯性映射設計:一對一 (1:1)、一對多 (1:N)、多對多 (N:M) 的邏輯轉換
- ORM 的優缺點分析、與 1+N 查詢問題預警
- Python Tortoise ORM 實作
- 結合非同步 Asynchronous 架構的 ORM 體驗
- 透過 Tortoise ORM 定義 Model 與 Schema
- 使用 async/await 進行非同步的資料庫 CRUD 操作
- 透過 Tortoise ORM 操作關聯性資料與聚合查詢
- Day 4:現代前端版面配置與響應式設計、JavaScript 動態互動、與非同步資料獲取
- 前端 DOM 結構與 CSS 排版核心
- HTML5 語意化標籤與 DOM 樹狀結構解析
- CSS3 核心:Box Model、Flexbox 彈性排版與 Grid 網格佈局
- RWD 與 Bootstrap 應用
- 響應式網頁設計 RWD (Responsive Web Design) 及 Media Queries 原理
- 導入 Bootstrap 前端框架 簡介
- Bootstrap 網格系統 Grid System 實作跨裝置自適應版面
- 常用 Bootstrap 元件快速套用 ~ 導覽列、卡片、表單、互動式 Modal
- JavaScript ES6+ 核心與 DOM 操控
- 變數、箭頭函數、與解構賦值
- 陣列的高階方法 ~ map, filter, reduce
- JavaScript 事件監聽 Event Listeners 與 DOM 動態渲染
- AJAX、Fetch API 與非同步請求
- 前端的非同步思維:Callback, Promises 與 async/await
- 實作 AJAX / Fetch API 向第三方開放資料發送 GET/POST 請求
- 將獲取到的 JSON 資料動態渲染至 Bootstrap 卡片或表格中
- Day 5:輕量級 Web 框架 Flask 基礎
- Python Flask 框架簡介與路由
- Web 框架的運作原理與 Flask 的微框架特性
- 結合 Decorator 概念:理解 Flask 的 @app.route 路由註冊
- Request 物件解析(GET 參數與 POST 表單資料)與 Response 物件
- Flask 視圖與資料庫整合
- Flask 結合 Tortoise ORM (或其他的 Python SQL Client 套件) 進行資料庫存取
- 基礎模板渲染 (Jinja2) 概念簡介
- 實作簡單的網頁版 CRUD 管理介面
- Day 6:RESTful API 開發與前後端分離實戰
- Flask RESTful API 設計與實作
- 何謂 RESTful 架構風格?(HTTP Methods: GET, POST, PUT, DELETE 的正確語意)
- 使用 Flask 打造 JSON 格式的 API 端點 (Endpoints)
- API 狀態碼 (Status Codes) 管理與例外錯誤處理
- 跨來源資源共用 (CORS) 概念與設定
- 前後端整合演練與課程總結
- 綜合實戰:前端使用 Bootstrap + JavaScript Fetch API,非同步呼叫後端自己開發的 Flask RESTful API,並透過 Tortoise ORM 存取資料庫。
- 檢視實作成果:完成一個具備完整 CRUD 功能的單頁式/微型前後端分離應用。
- 課程總結與展望:Django 實務班預告(從輕量級 Flask 邁向企業級 Django 架構的心態轉換)。
🔸總時數: 36 小時 (6 天,每天 6 小時)
- Day 1:Python 進階特性與資料庫塑模基礎
- 上午 (AM) - 物件導向 (OOP) 核心與裝飾器 (Decorator)
- 類別、物件、屬性與方法,以及繼承與多型在實務上的應用
- super() 函數與多重繼承概論(為 Django 視圖繼承打底)
- 一級函數與閉包 (Closures) 概念
- Python Decorator (裝飾器):原理解析、自訂裝飾器實作,及其在 Web 框架中的應用情境。
- 下午 (PM) - 非同步設計與 ERD 實體關聯設計
- Python 非同步程式開發:asyncio 模組、Event Loop 與 async/await 語法實戰。
- 關聯式資料庫 (MariaDB) 與資料庫正規化 (Normalization) 原則。
- 針對 Database Schema 的應用設計:實體關係圖 (ERD / ER-Model) 繪製與系統架構分析。
- Day 2:SQL 實戰與 ORM 典範轉移
- 上午 (AM) - 進階 SQL 與 Python SQL Client
- 多表關聯查詢 (JOIN) 與聚合函數 (GROUP BY)。
- Python SQL Client 實務:使用第三方套件連線資料庫執行原生 SQL (CRUD 操作)。
- 游標 (Cursor)、交易 (Transaction) 管理與防範 SQL Injection 攻擊。
- 下午 (PM) - 從 ERD 到 ORM 的轉換思維
- 什麼是物件關聯對映 (ORM)?
- 由 ERD 改為 ORM:如何將「資料表」轉換為「類別」,將「紀錄」轉換為「物件」。
- 關聯性映射設計:一對一 (1:1)、一對多 (1:N)、多對多 (N:M) 的邏輯轉換與 N+1 查詢問題預警。
- Day 3:非同步 ORM 與現代前端佈局
- 上午 (AM) - Python Tortoise ORM 實戰
- 結合 async/await 的現代化非同步 ORM 體驗。
- 透過 Tortoise ORM 定義 Model 與 Schema。
- 實作非同步的資料庫 CRUD 操作與關聯性資料查詢。
- 下午 (PM) - 前端骨架與 RWD 響應式設計
- HTML5 語意化標籤、DOM 樹狀結構與 CSS3 排版核心 (Flexbox)。
- RWD 與 Bootstrap 5 應用:Media Queries 原理與導入 Bootstrap 框架。
- Bootstrap 網格系統 (Grid System) 實作跨裝置自適應版面,與常用元件快速套用。
- Day 4:JavaScript 動態互動與非同步請求
- 上午 (AM) - JavaScript ES6+ 核心與 DOM 操控
- JS 變數宣告、箭頭函數、解構賦值與陣列高階方法。
- JavaScript 事件監聽 (Event Listeners) 與 DOM 動態渲染。
- 下午 (PM) - AJAX 與 Fetch API 應用實戰
- 前端的非同步思維:Callback, Promises 與 async/await。
- AJAX 與 Fetch API:JSON 資料格式解析。
- 實作 Fetch API 向第三方開放資料發送請求,並將獲取到的 JSON 資料動態渲染至 Bootstrap 介面中。
- Day 5:輕量 Web 框架 Flask 與資料庫整合
- 上午 (AM) - Python Flask 框架簡介與路由
- Web 框架運作原理與 Flask 的微框架特性。
- 結合 Day 1 的 Decorator 概念:理解 Flask 的 @app.route 路由註冊。
- Request 物件解析(GET 參數與 POST 表單資料)與 Response 物件。
- 下午 (PM) - Flask 結合 Tortoise ORM
- 建立 Flask 應用程式並妥善配置資料庫連線。
- 透過 Tortoise ORM 在 Flask 視圖函數中進行資料的存取與運算。
- 基礎的後端資料封裝與例外錯誤處理。
- Day 6:RESTful API 開發與前後端分離總成
- 上午 (AM) - Flask RESTful API 設計與實作
- 何謂 RESTful 架構風格?(HTTP Methods: GET, POST, PUT, DELETE 的正確語意)。
- 使用 Flask 打造 JSON 格式的 API 端點 (Endpoints)。
- API 狀態碼 (Status Codes) 管理與跨來源資源共用 (CORS) 設定。
- 下午 (PM) - 前後端分離整合演練與課程總結
- 綜合實戰:前端使用 Bootstrap + JS Fetch API,非同步呼叫後端開發的 Flask RESTful API,並透過 Tortoise ORM 存取資料庫。
- 檢視實作成果:完成一個具備完整 CRUD 功能的微型單頁式應用 (SPA)。
- 課程總結:從 Flask 邁向企業級 Django 架構的心態轉換與實務班預告。
🔸總時數: 48 小時 (8 天,每天 6 小時)
- Day 1:Python 物件導向與進階特性
- 上午 (AM) - 物件導向 (OOP) 核心與實作
- 類別 (Class) 與物件 (Object) 的深入探討與記憶體配置概念
- 屬性、方法與特殊建構式 (init, str, repr)
- 封裝、繼承與多型 (Polymorphism) 在實務上的應用
- super() 函數與多重繼承概論(為理解 Django 複雜的視圖繼承打底)
- 下午 (PM) - 函數進階與裝飾器 (Decorator)
- 一級函數 (First-Class Functions) 與閉包 (Closures) 的概念
- [新增] Python Decorator (裝飾器):原理解析與自訂裝飾器實作
- 帶參數的裝飾器與 functools.wraps 的應用
- 裝飾器在 Web 框架中的常見情境(如:權限驗證、路由註冊預熱)
- Day 2:非同步程式設計與關聯式資料庫基礎
- 上午 (AM) - Python 非同步程式開發 (Asynchronous Programming)
- 同步 (Synchronous) 與非同步 (Asynchronous) 的效能差異與應用場景
- 深入理解 asyncio 模組與 Event Loop (事件迴圈)
- async 與 await 語法實戰:建立非同步任務與並行處理
- 非同步設計在現代 I/O 密集型 Web 應用中的重要性
- 下午 (PM) - 關聯式資料庫與 ERD 實體關聯設計
- 關聯式資料庫 (MariaDB) 概念與圖形化工具 (DBeaver/VS Code SQL) 操作
- 資料庫正規化 (Normalization) 原則
- 實體關係圖 (ERD / ER-Model) 繪製與系統架構分析
- SQL 基礎回顧與 DDL (資料定義語言) 實作
- Day 3:進階 SQL 操作與 Python SQL Client
- 上午 (AM) - 複雜資料查詢與操作 (SQL DML & DQL)
- 多表關聯查詢:INNER JOIN, LEFT/RIGHT JOIN, FULL OUTER JOIN
- 聚合函數 (SUM, AVG, COUNT) 與資料分組 (GROUP BY, HAVING)
- 子查詢 (Subqueries) 與視圖 (Views) 應用
- 下午 (PM) - [新增] Python SQL Client 實務
- 使用 Python 第三方套件 (如 mariadb 或 pymysql) 連線資料庫
- 透過 Python 執行原生 SQL 語法 (CRUD 操作)
- 游標 (Cursor) 的操作與 Transaction (交易) 管理:Commit 與 Rollback
- 防範 SQL Injection 攻擊:參數化查詢 (Parameterized Queries)
- Day 4:從 ERD 到 ORM 的典範轉移
- 上午 (AM) - [新增] Database Schema 設計與 ORM 映射思維
- 什麼是物件關聯對映 (Object-Relational Mapping, ORM)?
- 由 ERD 改為 ORM:如何將「資料表 (Tables)」轉換為「類別 (Classes)」,將「紀錄 (Rows)」轉換為「物件 (Instances)」
- 關聯性映射設計:一對一 (One-to-One)、一對多 (One-to-Many)、多對多 (Many-to-Many) 的 ORM 邏輯轉換
- ORM 的優缺點分析與 N+1 查詢問題預警
- 下午 (PM) - [新增] Python Tortoise ORM 實戰
- 為什麼選擇 Tortoise ORM?(結合非同步架構的現代 ORM 體驗)
- 透過 Tortoise ORM 定義 Model 與 Schema
- 使用 async/await 進行非同步的資料庫 CRUD 操作
- 透過 Tortoise ORM 操作關聯性資料與聚合查詢
- Day 5:現代前端版面配置與響應式設計
- 上午 (AM) - 前端 DOM 結構與 CSS 排版核心
- HTML5 語意化標籤與 DOM 樹狀結構解析
- CSS3 核心:Box Model、Flexbox 彈性排版與 Grid 網格佈局
- 下午 (PM) - [新增] RWD 與 Bootstrap 5 應用
- 什麼是響應式網頁設計 (Responsive Web Design, RWD)?Media Queries 原理
- 導入 Bootstrap 5 前端框架
- Bootstrap 網格系統 (Grid System) 實作跨裝置自適應版面
- 常用 Bootstrap 元件快速套用(導覽列、卡片、表單、互動式 Modal)
- Day 6:JavaScript 動態互動與非同步資料獲取
- 上午 (AM) - JavaScript ES6+ 核心與 DOM 操控
- JS 變數 (let, const)、箭頭函數與解構賦值
- 陣列的高階方法 (map, filter, reduce)
- JavaScript 事件監聽 (Event Listeners) 與 DOM 動態渲染
- 下午 (PM) - [新增] AJAX、Fetch API 與非同步請求
- 前端的非同步思維:Callback, Promises 與 async/await(呼應 Day 2 的 Python 經驗)
- 什麼是 AJAX?JSON 資料格式解析
- 實作 Fetch API 向第三方開放資料發送 GET/POST 請求
- 將獲取到的 JSON 資料動態渲染至 Bootstrap 卡片或表格中
- Day 7:輕量級 Web 框架 Flask 基礎
- 上午 (AM) - [新增] Python Flask 框架簡介與路由
- Web 框架的運作原理與 Flask 的微框架特性
- 結合 Day 1 的 Decorator 概念:理解 Flask 的 @app.route 路由註冊
- Request 物件解析(GET 參數與 POST 表單資料)與 Response 物件
- 下午 (PM) - Flask 視圖與資料庫整合
- Flask 結合 Tortoise ORM (或 Python SQL Client) 進行資料庫存取
- 基礎模板渲染 (Jinja2) 概念簡介(將重心保留給後續的 API 開發)
- 實作簡單的網頁版 CRUD 管理介面
- Day 8:RESTful API 開發與前後端分離實戰
- 上午 (AM) - [新增] Flask RESTful API 設計與實作
- 何謂 RESTful 架構風格?(HTTP Methods: GET, POST, PUT, DELETE 的正確語意)
- 使用 Flask 打造 JSON 格式的 API 端點 (Endpoints)
- API 狀態碼 (Status Codes) 管理與例外錯誤處理
- 跨來源資源共用 (CORS) 概念與設定
- 下午 (PM) - 前後端整合演練與課程總結
- 綜合實戰:前端使用 Bootstrap + JS Fetch API,非同步呼叫後端自己開發的 Flask RESTful API,並透過 Tortoise ORM 存取資料庫。
- 檢視實作成果:完成一個具備完整 CRUD 功能的單頁式/微型前後端分離應用。
- 課程總結與展望:Django 實務班預告(從輕量級 Flask 邁向企業級 Django 架構的心態轉換)。
訓練班別計畫表
🔸 課程目標
※可用於行銷文宣,以求能精準吸引到目標群眾。
- 本課程旨在協助稍具 Python 程式語言基礎及 SQL 資料庫基礎之學員,建立嚴謹的物件導向軟體工程思維與 Web 應用系統架構觀念,目標為消弭初階語法與進階 Web 框架(如 Django)之間的知識斷層。
- 針對後端開發,深入探討了 Python 的 OOP 物件導向設計、進階語法、非同步 I/O 模型,也闡述了關聯式資料庫正規化理論、說明如何從 ERD 轉移到 ORM 的典範,並以 Python Tortoise ORM 進行實作體驗。
- 前端開發的部份,則探討了 DOM 及 JavaScript 的各種應用,包含 AJAX / Fetch API 與非同步請求,並搭配 Bootstrap 網頁設計框架來達成 RWD 響應式設計。
- 課程後段採用 Flask 輕量級 Web 框架,實作符合 REST 軟體架構風格之 API。前後端分離之系統架構,為學員建構紮實的資訊技術與實務開發能力,進而能順利且有效地銜接 Django 高階全端應用程式開發之專業課程。
🔸 課程特色
簡述課程概要:
- 本課程規劃為 36 小時之密集學程,內容涵蓋三大核心領域:資料庫系統管理及操作、後端程式邏輯、以及前端網頁工程。
- 課程首先探究 Python 物件導向特性與非同步 (Asynchronous) 程式設計模型;接續引入關聯式資料庫系統 (RDBMS) 理論,並運用實體關聯模型 (ER-Model) 進行資料庫綱要 (Schema) 設計,再解析物件關聯對映 (ORM) 之底層映射機制。
- 課程接著導入 JavaScript 以進行前端 DOM 操作,並透過 AJAX / Fetch API 取得外部資料,同時也搭配了 Bootstrap 5 的 RWD 響應式框架,讓網頁的呈現更動態、更適切而美觀。
- 課程後段則以輕量級 Web 框架 Flask 為載體,實作符合 REST 軟體架構風格之 API,最終完成前後端分離 (Decoupled Architecture) 之現代化 Web 應用系統整合實作。
a. 知識:
※描述學員在學科理論面能獲得的知識。
- 進階程式設計的思維: 剖析物件導向設計 OOP 之封裝、繼承、多型原理,並探討一級函數 First-Class Functions、閉包 Closures 與裝飾器 Decorators 之底層運作邏輯。
- 非同步架構與 I/O 模型: 解析 Asyncio 與事件迴圈 Event Loop 運作機制,對比同步與非同步處理架構在 Web 系統中之運算效能差異與適用場景。
- 資料庫系統與關聯模型理論: 奠基於資料庫正規化 Normalization 原則,精熟實體關聯圖 ERD 之建構,並透徹理解關聯式模型轉換至物件關聯對映 ORM 之映射法則與查詢瓶頸分析。
- 現代 Web 通訊協定與架構: 探討 HTTP 請求/回應機制,解析 JSON 資料序列化結構,並嚴格遵循 RESTful 軟體架構風格進行 API 介面設計規範。
b. 技能:
※描述實際操作體驗能獲得的練習方式與內容。
- 資料庫操作與優化實務: 具備編寫複雜 SQL JOIN 查詢及聚合運算之能力,熟稔 Python SQL Client 之原生操作及交易 Transaction 管理,並能實作 Tortoise ORM 進行非同步 CRUD 數據處理。
- 前端介面 DOM 操控與動態渲染: 運用 Bootstrap 框架實作符合 RWD 標準之響應式網頁,並以 JavaScript 進行 DOM 節點操作與事件監聽 Event-Driven Programming。
- 非同步請求與 API 開發:於前端應用 Fetch API 執行非同步資料傳輸;於後端應用 Flask 微型框架建構符合 RESTful 標準之 JSON API 端點,並實作跨來源資源共用 CORS 策略。
- 前後端分離系統整合: 具備將前端介面、後端路由邏輯與資料庫存取層進行模組化整合之能力,親手構建高內聚、低耦合之單頁式應用程式 SPA。
c. 成效:
※上完本課程後,學員在職涯上有什麼實際的效果與幫助。
- 建立進階框架之學理基礎: 弭平初學者過渡至企業級重量框架 (如 Django) 之知識壁壘,使學員面對複雜系統架構與設計模式 Design Patterns 時,能以扎實的技術觀念進行推理與解構。
- 培養獨立系統分析與設計能力: 賦予學員從需求萃取、資料庫 Schema 塑模,至 API 介面規格制定的全端系統規劃能力,跳脫單純的程式碼撰寫層次。
- 產出具備工程規範之專題成果: 結訓時將完成一套符合現代化前後端分離架構之微型資訊系統,充分展現學員在軟體工程實務上之技術整合與解題能力。
🔸 能力專長
※填寫適合的關鍵字,讓學員可依照關鍵字搜尋到本課程。
- 全端開發:
Python, Django, 網站開發 (Web Development), 後端工程 (Backend Engineering), 全端整合 (Full Stack), 響應式網頁設計 (RWD), UI/UX - 資料庫:
資料庫設計 (Database Design), SQL, MySQL, MariaDB, ORM, - 系統整合:
RESTful API, OAuth
- 核心語言與框架:
Python, JavaScript (ES6+), Flask - 後端與資料庫:
物件導向設計 (OOP), 非同步設計 (Asyncio), 關聯式資料庫, MariaDB, SQL 語法, 資料庫塑模 (ERD), ORM, Tortoise ORM - 前端與介面:
前端開發, HTML5/CSS3, Bootstrap 5, RWD (響應式網頁設計), DOM 操作 - 系統架構與通訊:
RESTful API, AJAX, Fetch API, JSON, 前後端分離, 單頁式應用 (SPA) - 職涯與進修:
全端開發先修, 後端工程師, Django 課前準備
- 軟體工程與架構: 物件導向程式設計 (OOP), 軟體設計模式 (Design Patterns), 前後端分離架構 (Decoupled Architecture), 單頁式應用程式 (SPA), RESTful API 設計規範
- 後端技術與框架: Python 進階語法, 非同步程式設計 (Asynchronous I/O), Flask 微型框架, 裝飾器應用 (Decorators)
- 資料庫系統工程: 關聯式資料庫 (RDBMS), MariaDB, 實體關聯模型 (ER-Model), 資料庫正規化 (Database Normalization), 物件關聯對映 (ORM), Tortoise ORM, SQL 語法與效能調校
- 前端工程與通訊: JavaScript (ES6+), DOM 樹狀結構操作, Fetch API / AJAX, 響應式網頁設計 (RWD), Bootstrap 5 框架, JSON 序列化傳輸
🔸 學員資格
- 學歷:高中/職(含)以上
- 資格條件:
- 具備電腦基本操作能力。
- 對 Python 程式語言稍具概念者。
- 對 HTML、CSS 網頁製作 及 JavaScript 程式語言稍具概念者。
- 對 SQL 關聯式資料庫稍具概念者。
🔸 訓練費用編列說明
- 材料費估計: 無
🔸 課程使用軟體(開發環境)
- Python v3
- Visual Studio Code
- MariaDB / MySQL Database Server
🔸 上課教室配置
- 本課程學員使用的電腦需要有開機不還原的磁區,才能將每週的開發進度持續保留下去,直到結訓為止。
- 理想狀況,這個不還原的開機磁區最好能夠是新建的,且不與其他課程共用,以免相互干擾。