簡單 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 執行!🚀
沒有留言:
張貼留言