Flask安装与配置 #

一、环境要求 #

1.1 Python版本 #

Flask版本 Python版本要求
Flask 3.0+ Python 3.8+
Flask 2.x Python 3.7+
Flask 1.x Python 3.5+

1.2 检查Python版本 #

bash
# 检查Python版本
python --version
# 或
python3 --version

# 输出示例
# Python 3.11.5

二、虚拟环境 #

2.1 为什么使用虚拟环境 #

优势 说明
隔离性 每个项目独立的依赖环境
版本管理 不同项目可使用不同版本的包
可复现 便于导出和重建环境
安全性 避免污染系统Python环境

2.2 使用venv创建虚拟环境 #

bash
# 创建虚拟环境
python -m venv venv

# 激活虚拟环境
# macOS/Linux
source venv/bin/activate

# Windows CMD
venv\Scripts\activate.bat

# Windows PowerShell
venv\Scripts\Activate.ps1

# 退出虚拟环境
deactivate

2.3 使用poetry管理项目 #

bash
# 安装poetry
pip install poetry

# 创建新项目
poetry new myflaskapp

# 或在现有项目中初始化
poetry init

# 安装依赖
poetry add flask

# 激活虚拟环境
poetry shell

2.4 虚拟环境目录结构 #

text
myflaskapp/
├── venv/
│   ├── bin/          # macOS/Linux
│   │   ├── activate
│   │   ├── python
│   │   └── pip
│   ├── Scripts/      # Windows
│   │   ├── activate.bat
│   │   ├── python.exe
│   │   └── pip.exe
│   ├── lib/
│   │   └── python3.x/
│   │       └── site-packages/
│   └── pyvenv.cfg
├── app.py
└── requirements.txt

三、安装Flask #

3.1 使用pip安装 #

bash
# 确保已激活虚拟环境
source venv/bin/activate

# 安装最新版Flask
pip install flask

# 安装指定版本
pip install flask==3.0.2

# 安装开发版本
pip install flask --pre

3.2 验证安装 #

bash
# 查看Flask版本
pip show flask

# 输出示例
# Name: Flask
# Version: 3.0.2
# Summary: A simple framework for building complex web applications.
python
# 在Python中验证
import flask
print(flask.__version__)
# 输出: 3.0.2

3.3 安装常用扩展 #

bash
# 数据库
pip install flask-sqlalchemy

# 数据库迁移
pip install flask-migrate

# 表单
pip install flask-wtf

# 用户认证
pip install flask-login

# 邮件
pip install flask-mail

# REST API
pip install flask-restful

# 跨域
pip install flask-cors

# 一次性安装多个
pip install flask flask-sqlalchemy flask-migrate flask-wtf flask-login

四、项目配置 #

4.1 创建requirements.txt #

bash
# 导出依赖
pip freeze > requirements.txt

requirements.txt示例:

text
Flask==3.0.2
Flask-SQLAlchemy==3.1.1
Flask-Migrate==4.0.5
Flask-WTF==1.2.1
Flask-Login==0.6.3
Werkzeug==3.0.1
Jinja2==3.1.3
bash
# 从requirements.txt安装
pip install -r requirements.txt

4.2 基本配置 #

python
from flask import Flask

app = Flask(__name__)

# 基本配置
app.config['DEBUG'] = True
app.config['SECRET_KEY'] = 'your-secret-key-here'

# 或使用字典更新
app.config.update(
    DEBUG=True,
    SECRET_KEY='your-secret-key-here',
    SESSION_COOKIE_SECURE=True
)

4.3 从文件加载配置 #

config.py:

python
class Config:
    DEBUG = False
    TESTING = False
    SECRET_KEY = 'production-secret-key'
    SQLALCHEMY_DATABASE_URI = 'sqlite:///app.db'

class DevelopmentConfig(Config):
    DEBUG = True
    SQLALCHEMY_DATABASE_URI = 'sqlite:///dev.db'

class TestingConfig(Config):
    TESTING = True
    SQLALCHEMY_DATABASE_URI = 'sqlite:///:memory:'

class ProductionConfig(Config):
    SQLALCHEMY_DATABASE_URI = 'postgresql://user:pass@localhost/prod'

app.py:

python
from flask import Flask
from config import DevelopmentConfig

app = Flask(__name__)
app.config.from_object(DevelopmentConfig)

4.4 从环境变量加载 #

python
import os
from flask import Flask

app = Flask(__name__)

# 从环境变量加载
app.config['SECRET_KEY'] = os.environ.get('SECRET_KEY', 'dev-secret-key')
app.config['SQLALCHEMY_DATABASE_URI'] = os.environ.get(
    'DATABASE_URL', 
    'sqlite:///app.db'
)
bash
# 设置环境变量
# macOS/Linux
export SECRET_KEY='your-secret-key'
export DATABASE_URL='postgresql://localhost/mydb'

# Windows CMD
set SECRET_KEY=your-secret-key
set DATABASE_URL=postgresql://localhost/mydb

# Windows PowerShell
$env:SECRET_KEY="your-secret-key"
$env:DATABASE_URL="postgresql://localhost/mydb"

4.5 使用.env文件 #

bash
# 安装python-dotenv
pip install python-dotenv

.env文件:

text
SECRET_KEY=your-secret-key-here
DATABASE_URL=postgresql://localhost/mydb
FLASK_ENV=development
FLASK_DEBUG=1

app.py:

python
from flask import Flask
from dotenv import load_dotenv

load_dotenv()  # 加载.env文件

app = Flask(__name__)

五、开发工具配置 #

5.1 VS Code配置 #

.vscode/launch.json:

json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Flask",
            "type": "python",
            "request": "launch",
            "module": "flask",
            "env": {
                "FLASK_APP": "app.py",
                "FLASK_DEBUG": "1"
            },
            "args": [
                "run",
                "--no-debugger",
                "--no-reload"
            ],
            "jinja": true
        }
    ]
}

5.2 .gitignore配置 #

gitignore
# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
venv/
ENV/

# Flask
instance/
.webassets-cache
*.pyc

# Environment
.env
.env.local

# Database
*.db
*.sqlite
*.sqlite3

# IDE
.vscode/
.idea/
*.swp
*.swo

六、项目结构模板 #

6.1 小型项目结构 #

text
myapp/
├── venv/
├── app.py
├── templates/
│   └── index.html
├── static/
│   ├── css/
│   └── js/
├── requirements.txt
└── .env

6.2 中型项目结构 #

text
myapp/
├── venv/
├── app/
│   ├── __init__.py
│   ├── models.py
│   ├── views.py
│   ├── forms.py
│   ├── templates/
│   │   ├── base.html
│   │   └── index.html
│   └── static/
│       ├── css/
│       └── js/
├── migrations/
├── config.py
├── requirements.txt
└── run.py

6.3 大型项目结构 #

text
myapp/
├── venv/
├── app/
│   ├── __init__.py
│   ├── models/
│   │   ├── __init__.py
│   │   └── user.py
│   ├── auth/
│   │   ├── __init__.py
│   │   ├── routes.py
│   │   └── forms.py
│   ├── main/
│   │   ├── __init__.py
│   │   └── routes.py
│   ├── api/
│   │   ├── __init__.py
│   │   └── resources.py
│   ├── templates/
│   ├── static/
│   └── utils/
├── migrations/
├── tests/
│   ├── __init__.py
│   ├── test_models.py
│   └── test_routes.py
├── config.py
├── requirements.txt
└── run.py

七、常用命令 #

7.1 Flask命令 #

bash
# 设置FLASK_APP环境变量
export FLASK_APP=app.py

# 运行开发服务器
flask run

# 指定主机和端口
flask run --host=0.0.0.0 --port=8080

# 开启调试模式
export FLASK_DEBUG=1
flask run

# 创建管理员shell
flask shell

# 查看所有路由
flask routes

7.2 pip常用命令 #

bash
# 安装包
pip install package_name

# 安装指定版本
pip install package_name==1.0.0

# 升级包
pip install --upgrade package_name

# 卸载包
pip uninstall package_name

# 查看已安装的包
pip list

# 查看包详情
pip show package_name

# 搜索包
pip search package_name

# 导出依赖
pip freeze > requirements.txt

# 安装依赖
pip install -r requirements.txt

八、常见问题 #

8.1 端口被占用 #

bash
# 查看端口占用
# macOS/Linux
lsof -i :5000

# Windows
netstat -ano | findstr :5000

# 使用其他端口
flask run --port=5001

8.2 模块找不到 #

bash
# 确保在虚拟环境中
which python  # macOS/Linux
where python  # Windows

# 重新安装依赖
pip install -r requirements.txt

8.3 权限问题 #

bash
# 不要使用sudo安装到系统Python
# 使用虚拟环境代替

# 如果遇到权限问题
pip install --user flask

九、总结 #

9.1 核心要点 #

要点 说明
Python版本 Flask 3.0+ 需要 Python 3.8+
虚拟环境 推荐使用venv或poetry
安装方式 pip install flask
配置方式 代码配置、配置文件、环境变量

9.2 下一步 #

环境配置完成后,让我们创建 第一个应用,开始Flask开发之旅!

最后更新:2026-03-28