# 20220929 My First Web App 學習目標: 1. Visual Studio Code 基本操作 2. 在本地端建立 Web App 3. 學習建立 function 4. 學習基本命令: if, print ## Part 1: 建置新的工作區域(workspace repository) 步驟1: 電腦建立一個新的資料夾, 例如, pythonlab_111_MIG004301 ``` PS D:\python_lab>mkdir pythonlab_111_MIG004301 ``` 步驟2: 打開 Visual Studio Code 並點選 File -> Open Folder... -> pythonlab_111_MIG004301, 並點選"Select Folder" ![](https://i.imgur.com/fxZFBNA.png) 步驟3: 信任作者 ![](https://i.imgur.com/kvE82op.png) 步驟4: 新的 workspace, pythonlab_111_MIG004301 ![](https://i.imgur.com/ju7kRuI.png) 步驟5: 練習操作 workspace 的元件, 例如: * New File... * New Folder... * Terminal ## Part 2: Python Flask - 建立 Web App 步驟1: 打開 Visual Studio Code 並點選 workspace 步驟2: 建立一個新的專案, firstApp, 並建立該專案專屬的資料夾 步驟3: 打開 terminal 安裝 flask ``` PS D:\pythonlab_111_MIG004301>mkdir firstApp PS D:\pythonlab_111_MIG004301>cd firstApp PS D:\pythonlab_111_MIG004301\firstApp> pip install flask ``` 如果無法執行 pip 的同學, 可以嘗試下列方法 ``` 方法1: PS D:\pythonlab_111_MIG004301\firstApp> python -m pip install flask 方法2: PS D:\pythonlab_111_MIG004301\firstApp> py -m pip install flask ``` 步驟4: 如何驗證 flask 有安裝成功 ``` $ python Python 3.10.0 (tags/v3.10.0:b494f59, Oct 4 2021, 19:00:18) [MSC v.1929 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import flask >>> exit() ``` [原步驟5-6 skip] 步驟7: 點選專案資料夾,firstApp,在專案的資料夾中新增檔案, 並取名為 app.py (Ref: https://flask.palletsprojects.com/en/2.2.x/tutorial/layout/) ```python= from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello, World!' if __name__ == '__main__': app.run() ``` 第3行: 建立一個 Flask 應用程式的物件, app. 傳入的參數, '*\___name\___*', 是 python 內建的變數, 它會儲存目前這個程式執行的模組名稱, 也就是目前這個程式在哪個模組下執行. 如果這個程式是當成主程式來執行, '*\___name\___*' 的值就是 *\__main\__*. 第7-8行: 是一個函式 (function) 第6行: 在 function 上面用一個 "@" 符號, 就是 function 的裝飾(decorator), 以function為基礎,提供附加的功能. 在這裡是 app.route 的功能. 第10行: 如果目前這個程式是以主程式來執行 第11行: 立刻啟動伺服器 步驟8: 執行應用程式 ``` PS D:\pythonlab_111_MIG004301\firstApp> python app.py ``` ![](https://i.imgur.com/1bBu9g8.png) ![](https://i.imgur.com/8YZGSx0.png) 步驟9: 在啟動伺服器之前, 新增網站頁面. ```python= from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello, World!' @app.route("/readme") def readme(): return "This is ream me page. Please read me first!!" if __name__ == '__main__': app.run() ``` 第10行: 代表我們要處理的網站路徑 第11-12行: 執行 readme() 函式 ----------------------- 參考資料: 1. Flask 函式庫: https://flask.palletsprojects.com/en/2.2.x/tutorial/layout/ 2. Python print() function: https://www.w3schools.com/python/ref_func_print.asp 3. Python functions: https://www.w3schools.com/python/python_functions.asp 4. Python conditions: (if... else...) https://www.w3schools.com/python/python_conditions.asp --------------------------- 備註: 步驟5: 點選專案資料夾,firstApp,在專案的資料夾中新增檔案, 並取名為 app.py (Ref: https://flask.palletsprojects.com/en/2.2.x/tutorial/layout/) ```python= from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello, World!' ``` 第3行: 建立一個 Flask 應用程式的物件, app. 傳入的參數, '*\___name\___*', 是 python 內建的變數, 它會儲存目前這個程式執行的模組名稱, 也就是目前這個程式在哪個模組下執行. 如果這個程式是當成主程式來執行, '*\___name\___*' 的值就是 *\__main\__*. 第7-8行: 是一個函式 (function) 第6行: 在 function 上面用一個 "@" 符號, 就是 function 的裝飾(decorator), 以function為基礎,提供附加的功能. 在這裡是 app.route 的功能. 步驟6: 執行應用程式 ``` PS D:\pythonlab_111_MIG004301>cd firstApp PS D:\pythonlab_111_MIG004301\firstApp> set FLASK_APP=app.py PS D:\pythonlab_111_MIG004301\firstApp> flask run ``` 附註: 如果是使用 Mac 的同學, ``` PS D:\pythonlab_111_MIG004301\firstApp> set FLASK_APP=app.py 要換成 $ export FLASK_APP=app.py ```