码迷,mamicode.com
首页 > Web开发 > 详细

falsk之文件上传

时间:2018-11-02 02:03:01      阅读:406      评论:0      收藏:0      [点我收藏+]

标签:value   data   static   使用   ret   filename   抛出异常   Enctype   render   

 

在使用flask定义路由完成文件上传时,定义upload视图函数

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

app = Flask(__name__)
app.debug = True
app.secret_key = helloworld!!

@app.route(/)
def hello_world():
    return Hello World!

@app.route(/upload,methods=[GET,POST])
def upload():
    if request.method == POST:
        f = request.files[file]
        base_path = os.path.abspath(os.path.dirname(__file__))
        upload_path = os.path.join(base_path,static\uploads)
        f.save(upload_path,secure_filename(f.filename))
        return "文件上传成功!!"
    return render_template(upload.html)

@app.errorhandler(404)
def page_not_found(error):
    return render_template(404.html),404

if __name__ == __main__:
    app.run(debug=True)

upload.html前端页面的内容为

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>文件上传</title>
</head>
<body>
<h1>文件上传示例</h1>
<form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit" value="上传">
</form>
</body>
</html>

启动项目,用浏览器打开http://127.0.0.1:5000/upload页面,前端页面显示如图所示

技术分享图片

选择要上传的文件

技术分享图片

文件选择完毕后,点击上传,flask会抛出异常,提供没有权限

技术分享图片

修改upload视图函数

@app.route(/upload,methods=[GET,POST])
def upload():
    if request.method == POST:
        f = request.files[file]
        base_path = os.path.abspath(os.path.dirname(__file__))
        upload_path = os.path.join(base_path,static\uploads,secure_filename(f.filename))
        f.save(upload_path)
        return "文件上传成功!!"
    return render_template(upload.html)

再次进行文件上传,选中文件后,点击上传按钮,可以看到

技术分享图片

由此可以看出,文件已经成功上传,此时查看项目static/uploads目录,可以看到上传的图片已经保存在flask项目中了

技术分享图片

由此可以在Flask项目中完成文件上传功能!!

 

falsk之文件上传

标签:value   data   static   使用   ret   filename   抛出异常   Enctype   render   

原文地址:https://www.cnblogs.com/sui776265233/p/9893551.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!