美文网首页
在python中使用flask上传文件并显示-----详细介绍

在python中使用flask上传文件并显示-----详细介绍

作者: 拥抱新的每一天_ | 来源:发表于2020-04-20 11:22 被阅读0次
本人是小白一枚,开始入手学习python,在学习过程中用到了上传图片这个东东,这里记录一些

上传文件的思路

1.把文件上传到服务器到一个文件夹中
2.服务器返回一个URL地址
写代码前一定要记得引入flask

前端代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录完成</title>
</head>
<body>
    <p>welcome {{username}}</p>

    <form action="/upload" enctype="multipart/form-data" method="post" >
         <input type="file" name="photo" />
         <input type="submit" value="提交" >
     </form>
     {% if url %}
    <img src="{{url}}">
    {% endif%}
 </body>
</html>

python代码

from flask import Flask,  render_template, request, redirect, url_for
from werkzeug.utils import secure_filename


# 上传文件到服务器指定到文件夹中(一定要放在自己起服务到那个文件夹,不要放在本地的其他文件夹中,不然服务器访问不了你的文件)
UPLOAD_FOLDER = 'static/'
# 上传文件格式
ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'])


app = Flask(__name__)
app.config['UPLOAD_POLDER'] = UPLOAD_FOLDER

def allowed_file(filename):
    return '.' in filename and \
        filename.rsplit('.',1)[1] in ALLOWED_EXTENSIONS

# 上传图片
@app.route('/upload',methods=['GET','POST'])
def upload_images():
    if request.method == 'POST':
        print('request======>',request.files.get('photo').filename) #get('photo')是input标签 name的名称,切忌写错!
        file = request.files['photo']
        if file and allowed_file(file.filename):
            filename = secure_filename(file.filename)
            file.save(os.path.join(app.config['UPLOAD_POLDER'],filename))
            url = UPLOAD_FOLDER+filename
            return render_template('hello.html',url = url)

效果从上传前到上传后到效果展示

上传前

image.png

上传后

image.png

相关文章

网友评论

      本文标题:在python中使用flask上传文件并显示-----详细介绍

      本文链接:https://www.haomeiwen.com/subject/hegkihtx.html