200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > flask(九)----jquery请求实现文件上传与访问

flask(九)----jquery请求实现文件上传与访问

时间:2024-06-30 07:27:04

相关推荐

flask(九)----jquery请求实现文件上传与访问

1.文件上传的html页面

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>文件上传</title><!--引入jquery--><script src="/jquery/2.1.1/jquery.min.js"></script></head><body><form action="/upload" method="post" enctype="multipart/form-data"><input type="file" name="f"><br><br><input type="submit"></form><!--此处script标签与文件上传功能无关--><script>function send_ajax(){$.ajax({url:'http://127.0.0.1:5000',data:JSON.stringify({username:'chuntian',pwd:'123'}),type:'POST',dataType:'json',contentType:'application/json', <!--此处指定为'appliction/json'格式,则jquery请求在后台接收用request.json;--><!--若没有指定'application/json'格式,后台接收用request.form。-->success:function(data){alert('成功')}});}</script></body></html>

2.后台处理

from flask import Flask, request, render_templateapp = 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 Truereturn 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 osfrom flask import Flask, request, render_template, send_from_directoryfrom werkzeug.utils import secure_filenameapp = 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 Truereturn 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/<filename>', methods=["GET"])def get_file(filename):return send_from_directory(os.getcwd(), filename) # 前端访问时需要返回的数据app.run(debug=True)

实现效果:

通常,我们把上传的图片的地址保存在数据库中,从数据库读取数据时,返回数据的地址,后端根据返回的地址查找图片。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。