- 取得連結
- X
- 電子郵件
- 其他應用程式
1. 介紹 Flask 與 Web 開發
Flask 是什麼?
Flask 是一個輕量組的 Python Web 框架,目標是提供簡潔而高效的 Web 開發環境。Flask 基於 WSGI 機制,允許開發者自由選擇許多延伸功能。
為什麼選擇 Flask?
-
輕量易上手:Flask 不僅減少了組件複雜度,而且提供準備好的基礎功能。
-
柔性高:可以根據需要自由加載載加功能,比如模板引擎、表單處理、資料庫等。
-
絕不經過包裝:和 Django 相比,Flask 可以選擇自己需要的套件,而不需要包含一整套內建功能。
Flask 與 Django 比較
Django 適合建立大型平台,已經配備好數據庫組件與常用功能。Flask 則適合輕量小型應用或 API 服務。
2. 設置開發環境
在開始使用 Flask 之前,需要設置開發環境。
安裝 Flask
先確保已安裝 Python:
python --version
使用 pip 安裝 Flask:
pip install flask
建立虛擬環境:
python -m venv venv
source venv/bin/activate # Mac/Linux
venv\Scripts\activate # Windows
3. 建立第一個 Flask 應用
建立一個最基本的 Flask 程式:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return "Hello, Flask!"
if __name__ == '__main__':
app.run(debug=True)
使用 python app.py
啟動應用,然後在瀏覽器打開 http://127.0.0.1:5000/
,將會看到 "Hello, Flask!"。
4. 使用 HTML 模板渲染網頁
Flask 使用 Jinja2 模板引擎來渲染 HTML:
templates/index.html
<!DOCTYPE html>
<html>
<head>
<title>Flask Example</title>
</head>
<body>
<h1>Hello, {{ name }}!</h1>
</body>
</html>
app.py
from flask import render_template
@app.route('/hello/<name>')
def hello(name):
return render_template('index.html', name=name)
5. 處理表單与請求數據
使用 request
處理 POST 表單:
from flask import request
@app.route('/submit', methods=['POST'])
def submit():
username = request.form['username']
return f"Received: {username}"
6. 數據庫操作與 Flask-SQLAlchemy
from flask_sqlalchemy import SQLAlchemy
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80), nullable=False)
db.create_all()
7. 建立 API
from flask import jsonify
@app.route('/api/user/<int:id>')
def get_user(id):
user = User.query.get(id)
return jsonify({'id': user.id, 'name': user.name})
8. 部署 Flask 應用
使用 Gunicorn 與 Nginx 部署:
pip install gunicorn
gunicorn -w 4 app:app
在 VPS 上使用 systemd 啟動 Flask 應用,完成網站部署。
9. 進階學習
-
詳細讀書:《Flask Web Development》
-
擴展 Flask 功能:Flask-Login 安全驗證
-
演算改善:資料庫繁銷處理
Flask 是一個充滿柔性與高效的 Python Web 框架,適合新手與有經驗的開發者使用。加油!
留言
發佈留言