2025年3月7日 星期五

Flask 留言板(Docker 版本)

 

簡單 Flask 留言板(Docker 版本)

這是一個 最簡單的 Flask 留言板,使用 Flask + Docker,讓使用者可以提交留言並顯示留言列表。


1. 準備 Flask 應用

1.1 建立專案資料夾

Windows 上,開啟 PowerShell 或 cmd,執行:

mkdir C:\flask_board
cd C:\flask_board

這會建立 C:\flask_board 目錄,並進入該目錄。


1.2 建立 app.py

C:\flask_board 目錄內,建立 app.py,內容如下:

from flask import Flask, request, render_template

app = Flask(__name__)

# 簡單的留言存儲(不使用資料庫)
messages = []

@app.route('/', methods=['GET', 'POST'])
def index():
    if request.method == 'POST':
        name = request.form.get('name')
        message = request.form.get('message')
        if name and message:
            messages.append({'name': name, 'message': message})
    return render_template('index.html', messages=messages)

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

這個 Flask 應用:

  • GET 方法:顯示留言列表
  • POST 方法:提交留言並存儲到 messages(記憶體中)

1.3 建立 templates/index.html

C:\flask_board\templates 目錄內,建立 index.html

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>簡單 Flask 留言板</title>
</head>
<body>
    <h1>留言板</h1>
    <form method="post">
        <label>姓名:</label>
        <input type="text" name="name" required>
        <br>
        <label>留言:</label>
        <textarea name="message" required></textarea>
        <br>
        <button type="submit">提交留言</button>
    </form>
    
    <h2>留言列表</h2>
    <ul>
        {% for msg in messages %}
            <li><strong>{{ msg.name }}</strong>: {{ msg.message }}</li>
        {% endfor %}
    </ul>
</body>
</html>

這個頁面:

  • 提供表單讓使用者提交 姓名 + 留言
  • 顯示所有留言

2. 建立 Dockerfile

C:\flask_board 內,建立 Dockerfile

# 使用 Python 3.10 作為基礎映像
FROM python:3.10

# 設定工作目錄
WORKDIR /app

# 複製當前目錄的所有檔案到容器內
COPY . .

# 安裝 Flask
RUN pip install flask

# 啟動 Flask 伺服器
CMD ["python", "app.py"]

3. 建立 Docker 映像檔

回到 PowerShell,進入 C:\flask_board

cd C:\flask_board

執行:

docker build -t flask_board .

這會根據 Dockerfile 建立 Docker 映像檔,名稱為 flask_board


4. 運行 Flask 容器

執行:

docker run -d -p 5000:5000 flask_board

這會:

  • -d:讓 Flask 在背景運行
  • -p 5000:5000:將本機 5000 port 對應到 Docker 內的 Flask 伺服器

5. 訪問 Flask 留言板

打開 瀏覽器,訪問:

http://localhost:5000/

你可以:

  • 輸入姓名 & 留言
  • 點擊提交
  • 留言會顯示在下方列表

6. 修改 Flask 應用後,如何更新?

6.1 停止並刪除舊容器

docker ps          # 找到正在運行的容器 ID
docker stop <容器ID>
docker rm <容器ID>

6.2 重新建置映像

docker build -t flask_board .

6.3 重新運行

docker run -d -p 5000:5000 flask_board

7. 即時開發模式(Volume 掛載)

如果你不想每次修改 Flask 程式後都要重建映像檔,可以使用 Volume 掛載

docker run -d -p 5000:5000 -v C:\flask_board:/app flask_board

這樣你只要修改 app.py,Flask 伺服器就會即時讀取變更 (適用開發模式)


8. 停止 & 刪除容器

如果你想停止 Flask 伺服器:

docker ps          # 找到運行中的容器 ID
docker stop <容器ID>

如果要刪除容器:

docker rm <容器ID>

如果要刪除 Docker 映像:

docker rmi flask_board

這是一個 最簡單的 Flask 留言板,可以幫助你快速建立 Flask 應用並用 Docker 執行!🚀

沒有留言:

張貼留言