Python Flask 文件上传限制:allowed_file 函数详解
Python Flask 文件上传限制:allowed_file 函数详解
这段代码定义了一个函数 allowed_file 和一个变量 ALLOWED_EXTENSIONS,并将 Flask 应用程序命名为 app。
函数 allowed_file 根据文件名判断文件是否是允许上传的类型,只有当文件后缀名在 ALLOWED_EXTENSIONS 集合中时才返回 True,否则返回 False。
变量 ALLOWED_EXTENSIONS 是一个包含允许上传的文件类型后缀名的集合。
示例代码:
ALLOWED_EXTENSIONS = {'png', 'jpg', 'JPG', 'PNG', 'bmp'}
def allowed_file(filename):
return '.' in filename and filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS
app = Flask(__name__, static_url_path='/static')
解释:
-
ALLOWED_EXTENSIONS = {'png', 'jpg', 'JPG', 'PNG', 'bmp'}: 定义一个集合ALLOWED_EXTENSIONS,包含允许上传的图片文件类型,包括png,jpg,JPG,PNG,bmp。 -
def allowed_file(filename):定义一个函数allowed_file,它接收文件名作为参数,并返回一个布尔值。 -
return '.' in filename and filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS: 该语句判断文件名中是否包含句点 ('.'),即是否包含文件扩展名。如果包含,则提取最后一个句点后的字符串(即文件扩展名)并判断它是否在ALLOWED_EXTENSIONS集合中。如果两个条件都满足,则返回True,否则返回False。 -
app = Flask(__name__, static_url_path='/static'): 创建一个 Flask 应用程序,并使用static_url_path参数来指定静态文件的 URL 路径。这意味着在访问静态文件时,需要在 URL 中添加/static/前缀。
如何使用:
在 Flask 应用程序中,你可以使用 allowed_file 函数来检查上传的文件是否允许。例如,在处理上传文件请求的路由中,你可以添加以下代码来验证文件类型:
from flask import Flask, request, render_template
# ... 其他代码 ...
@app.route('/upload', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
file = request.files['file']
if file.filename == '':
return 'No selected file' # 文件未选择
if file and allowed_file(file.filename):
# ... 保存文件 ...
return 'File uploaded successfully' # 文件上传成功
else:
return 'File type not allowed' # 文件类型不允许
return render_template('upload.html') # 返回上传文件页面
总结:
这段代码展示了如何在 Flask 应用程序中使用 allowed_file 函数来限制文件上传类型。通过定义 ALLOWED_EXTENSIONS 集合和 allowed_file 函数,你可以轻松地控制哪些类型的文件可以被上传到你的应用程序。
原文地址: https://www.cveoy.top/t/topic/otWf 著作权归作者所有。请勿转载和采集!