1.文件上传的html页面
文件上传
2.后台处理
from flask import Flask, request, render_template
app = Flask(__name__,
template_folder='static')
app.config['MAX_CONTENT_LENGTH'] = 10 * 1024 * 1024 # 限制上传的文件大小
def allowed_files(filename):
format_list = ['jpg', 'png', 'gif']
file_type = filename.split('.')[1]
if file_type in format_list:
return True
return False
@app.route('/upload', methods=['GET', 'POST'])
def upload():
file = request.files.get('f') # 从请求过来的数据中获取file,根据前端form表单中的文件name属性获取
if file is None:
return render_template('index.html')
if allowed_files(file.filename):
file.save(file.filename) # 根据文件名保存
return 'save success'
return 'error'
app.run(debug=True)
3.实现效果:
4.让文件可以被访问
import os
from flask import Flask, request, render_template, send_from_directory
from werkzeug.utils import secure_filename
app = Flask(__name__,
template_folder='static')
app.config['MAX_CONTENT_LENGTH'] = 10 * 1024 * 1024 # 限制上传的文件大小
def allowed_files(filename):
format_list = ['jpg', 'png', 'gif']
file_type = filename.split('.')[1]
if file_type in format_list:
return True
return False
@app.route('/upload', methods=['GET', 'POST'])
def upload():
file = request.files.get('f') # 从请求过来的数据中获取file,根据前端form表单中的文件name属性获取
if file is None:
return render_template('index.html')
if allowed_files(file.filename):
file.save(secure_filename(file.filename)) # 根据文件名保存,secure_filename:会自动将前端的输入去掉空格,填充格式,避免问题
return 'save success'
return 'error'
@app.route('/upload/', methods=["GET"])
def get_file(filename):
return send_from_directory(os.getcwd(), filename) # 前端访问时需要返回的数据
app.run(debug=True)
实现效果:
通常,我们把上传的图片的地址保存在数据库中,从数据库读取数据时,返回数据的地址,后端根据返回的地址查找图片。



