# Web微框架Flask如何安裝使用
Flask是一個輕量級的Python Web框架,以其簡潔、靈活和易擴展的特性受到開發者青睞。本文將詳細介紹Flask的安裝、基礎使用和核心功能,幫助初學者快速上手。
## 目錄
1. [Flask簡介](#flask簡介)
2. [安裝Flask](#安裝flask)
3. [第一個Flask應用](#第一個flask應用)
4. [路由與視圖函數](#路由與視圖函數)
5. [模板渲染](#模板渲染)
6. [靜態文件處理](#靜態文件處理)
7. [請求與響應](#請求與響應)
8. [Flask擴展](#flask擴展)
9. [部署建議](#部署建議)
---
## Flask簡介
Flask基于Werkzeug WSGI工具包和Jinja2模板引擎構建,核心特性包括:
- 輕量級(代碼量少,學習成本低)
- 內置開發服務器和調試器
- RESTful請求支持
- 支持Cookie和會話
- 豐富的擴展生態系統
適合快速開發小型項目或作為微服務架構中的組件。
---
## 安裝Flask
### 前置條件
確保已安裝Python 3.6+(推薦使用虛擬環境):
```bash
python --version # 檢查版本
python -m venv venv # 創建虛擬環境
source venv/bin/activate # 激活環境(Linux/Mac)
venv\Scripts\activate # Windows
pip install flask
驗證安裝:
import flask
print(flask.__version__) # 應輸出版本號如2.3.2
創建app.py
文件:
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
即可看到頁面輸出。
@app.route('/about')
def about():
return "About Page"
@app.route('/user/<username>')
def show_user(username):
return f"User: {username}"
默認只響應GET請求,可通過methods
參數擴展:
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
return do_login()
return show_login_form()
Flask使用Jinja2模板引擎:
1. 創建templates
文件夾
2. 編寫模板文件(如index.html
):
<!DOCTYPE html>
<html>
<head>
<title>{{ title }}</title>
</head>
<body>
<h1>Hello, {{ name }}!</h1>
</body>
</html>
from flask import render_template
@app.route('/hello/<name>')
def hello(name):
return render_template('index.html',
title='Flask Demo',
name=name)
靜態文件(CSS/JS/圖片)應存放在static
目錄:
url_for('static', filename='style.css')
模板中引用示例:
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
from flask import request
@app.route('/search')
def search():
query = request.args.get('q', '') # 獲取GET參數
return f"Search: {query}"
@app.route('/submit', methods=['POST'])
def submit():
data = request.form['data'] # 獲取POST表單數據
return f"Received: {data}"
from flask import make_response
@app.route('/custom')
def custom_response():
response = make_response("Custom Content")
response.headers['X-My-Header'] = 'Value'
response.status_code = 201
return response
常用擴展及安裝命令:
擴展名 | 用途 | 安裝命令 |
---|---|---|
Flask-SQLAlchemy | ORM支持 | pip install flask-sqlalchemy |
Flask-Login | 用戶認證 | pip install flask-login |
Flask-WTF | 表單處理 | pip install flask-wtf |
Flask-Mail | 郵件發送 | pip install flask-mail |
示例:使用Flask-WTF處理表單
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
class MyForm(FlaskForm):
name = StringField('Name')
submit = SubmitField('Submit')
app.run(debug=True)
推薦部署方案: 1. Gunicorn + Nginx(Linux)
pip install gunicorn
gunicorn -w 4 app:app
pip install waitress
waitress-serve --port=8000 app:app
SECRET_KEY
import os
app.config['SECRET_KEY'] = os.environ.get('SECRET_KEY')
本文介紹了Flask的核心使用流程: 1. 通過pip快速安裝 2. 創建最小化應用 3. 處理路由和請求 4. 使用模板和靜態文件 5. 擴展基礎功能 6. 部署注意事項
Flask的簡潔設計使得開發者可以快速構建Web應用,同時通過擴展實現復雜功能。建議進一步學習官方文檔和擴展庫的使用以掌握更多高級特性。 “`
(注:實際字符數約1500字,可根據需要調整章節深度或示例復雜度)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。