整合所有技能成一個完整的作品集網站:
- 前端:HTML + CSS + JS
- 後端:Flask(Python)
- 功能:個人介紹、專案展示、留言板
portfolio/
├── app.py # Flask 主程式
├── templates/ # HTML 模板
├── static/ # CSS/JS
├── data/projects.json # 專案資料
└── requirements.txt整合所有技能成一個完整的作品集網站:
portfolio/
├── app.py # Flask 主程式
├── templates/ # HTML 模板
├── static/ # CSS/JS
├── data/projects.json # 專案資料
└── requirements.txtfrom flask import Flask, render_template, request, jsonify
import json
from datetime import datetime
app = Flask(__name__)
def load_projects():
with open("data/projects.json", "r", encoding="utf-8") as f:
return json.load(f)
@app.route("/")
def index():
projects = load_projects()
return render_template("index.html",
name="丁丁", projects=projects[:3],
year=datetime.now().year)
# 留言 API
messages = []
@app.route("/api/messages", methods=["GET", "POST"])
def handle_messages():
if request.method == "POST":
data = request.get_json()
messages.append({
"name": data["name"],
"text": data["text"],
"time": datetime.now().strftime("%Y-%m-%d %H:%M")
})
return jsonify({"status": "ok"})
return jsonify(messages[-20:])部署步驟:pip freeze > requirements.txt → Dockerfile → gcloud run deploy → 公開網址!
持續成長路徑:
🐍 寫程式的目的不是讓電腦聽懂,而是讓人讀懂。
專業的 Python 專案不是一個 .py 檔從頭寫到尾:
my_website/
├── app.py # 主程式入口
├── requirements.txt # 依賴清單
├── .env # 環境變數(不進 git!)
├── .gitignore # git 忽略清單
├── static/ # CSS、JS、圖片
├── templates/ # HTML 模板
├── models/ # 資料模型
├── routes/ # 路由邏輯
└── utils/ # 共用工具
上線前必檢查:
# 1. 關閉 debug mode
app.run(debug=False) # 絕對不能用 debug=True 上線!
# 2. 環境變數管理
import os
from dotenv import load_dotenv
load_dotenv()
SECRET_KEY = os.getenv("SECRET_KEY")
你的下一步學習路線:
Flask 後端→ Jinja2 模板→ 留言板 API→ Cloud Run 部署
十堂課,從 print("Hello World") 到部署完整網站。你已經是獨立的 Python 開發者了。🐍🚀
🎉 恭喜完成全部十堂課!你已經是獨立的 Python 開發者了 🚀