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 从文件加载配置 #
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'
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
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