python使用app.config


python使用app.config

使用app.config“以后要换路径,只改一处就行”。

🎯 先看一个没用 app.config 的写法(不好维护)

from flask import Flask, request
from werkzeug.utils import secure_filename
import os

app = Flask(__name__)

@app.route('/upload', methods=['POST'])
def upload_file():
    file = request.files['file']
    filename = secure_filename(file.filename)
    save_path = os.path.join('./uploads', filename)  # ❌ 直接写死路径
    file.save(save_path)
    return f"文件已保存到 {save_path}"

如果你哪天想换路径,比如改成:

./static/user_files

你就得去每一个 ./uploads 的地方改成 ./static/user_files。 项目一大,几十处要改,非常麻烦。


✅ 用 app.config 管理路径(推荐)

from flask import Flask, request
from werkzeug.utils import secure_filename
import os

app = Flask(__name__)

# 只在这里定义一次上传目录 👇
UPLOAD_FOLDER = './uploads'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER

# 如果文件夹不存在,就自动创建
os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True)

@app.route('/upload', methods=['POST'])
def upload_file():
    file = request.files['file']
    filename = secure_filename(file.filename)
    save_path = os.path.join(app.config['UPLOAD_FOLDER'], filename)
    file.save(save_path)
    return f"文件已保存到 {save_path}"

🪄 改路径的方式就变得超简单:

假设项目上线后,你要把上传路径换成:

/var/www/project/uploads

你只需要改这一行

UPLOAD_FOLDER = '/var/www/project/uploads'

其他地方完全不用动。 所有用到 app.config['UPLOAD_FOLDER'] 的地方,都会自动用新的路径。


✅ 优点总结

优点说明
集中管理只改一处,全局生效
可扩展其他文件、模块都能访问这个配置
安全避免路径拼错或重复定义
清晰一看代码就知道项目上传目录在哪