【Python】Web学习笔记_flask(3)——上传文件

这篇具有很好参考价值的文章主要介绍了【Python】Web学习笔记_flask(3)——上传文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

用GET、POST请求上传图片并呈现出来

首先还是创建文件上传的模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>上传图片</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
    <div>
        <label for="avatar">上传图片</label>
        <input type="file" id="avatar" name="avatar" value="">
    </div>
    <button type="submit">提交</button>
</form>

</body>
</html>

然后需要定义几个函数:

upload():路由函数,接收GET请求时,显示模板文件内容,接收post请求时,上传图片

allowed_file():检测上传的文件是否满足设置的类型

random_file():为上传的文件重新创建随机的不重复文件名

uploaded_file():显示图片内容

import os.path
import uuid
import config

from flask import Flask,url_for,redirect,request,render_template,send_from_directory

ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'gif','PNG', 'JPG', 'JPEG', 'GIF',}

app=Flask(__name__)
UPLOAD_FOLDER = os.path.join(app.root_path,'uploads')
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
@app.route('/upload',methods=['GET','POST'])
#创建路由函数,接收GET请求时,显示模板文件内容,接收post请求时,上传图片
def upload():
    """
    #头像上传表单页面
    :return:
    """
    if request.method=='POST':
        #接受头像字段
        avatar=request.files['avatar']
        #判断头像是否上传
        if avatar and allowed_file(avatar.filename):
            filename=random_file(avatar.filename)
            avatar.save(os.path.join(app.config['UPLOAD_FOLDER'],filename))
            return redirect(url_for('uploaded_file',filename=filename))
    return render_template('upload.html')

def allowed_file(filename):
    """
    #判断上传文件类型是否允许
    :param filename 文件名
    :return: 布尔值 TRUE or False
    """
    print(filename)
    return '.' in filename and filename.rsplit('.',1)[1] in ALLOWED_EXTENSIONS

def random_file(filename):
    """
    生成随机文件名
    :param filename: 文件名
    :return:随机文件名
    """
    ext=os.path.splitext(filename)[1]
    #使用uuid生成随机字符
    new_filename=uuid.uuid4().hex+ext
    return new_filename

@app.route('/uploads/<filename>')
def uploaded_file(filename):
    """
    显示上传头像
    :param filename:文件名
    :return: 真实文件路径
    """
    return send_from_directory(app.config['UPLOAD_FOLDER'],filename)


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

需要单独设置的内容:

ALLOWED_EXTENSIONS:文件后缀类型

UPLOAD_FOLDER:上传文件的路径,如果不设置,会报错:

                                KeyError: 'UPLOAD_FOLDER'

ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'gif','PNG', 'JPG', 'JPEG', 'GIF',}

UPLOAD_FOLDER = os.path.join(app.root_path,'uploads')
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER

【Python】Web学习笔记_flask(3)——上传文件,python,前端,学习,flask,web【Python】Web学习笔记_flask(3)——上传文件,python,前端,学习,flask,web

 文章来源地址https://www.toymoban.com/news/detail-627723.html

【Python】Web学习笔记_flask(3)——上传文件,python,前端,学习,flask,web 

 

到了这里,关于【Python】Web学习笔记_flask(3)——上传文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python】Web学习笔记_flask(6)——会话&session对象

    处理利用cookie来判断用户登录外,也可以使用session来判断用户是否登录 html代码和cookie对象的设置相同    

    2024年02月12日
    浏览(31)
  • 【Python】Web学习笔记_flask(7)——Jinja2模板(1)

    Jinja2是基于python的模板引擎,功能类似于PHP的amarty、J2ee的Freemarker和velocity,完全支持Unicode,并具有集成的沙箱执行环境,Jinja2使用的事BSD协议,允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售。 渲染模板: 执行关键代码: 执行结果:  

    2024年02月11日
    浏览(26)
  • Python-web开发学习笔记(3):Flask Demo,一个网站开发小案例

    ☕️ 推荐关注我的另一个专栏系列:大道至简,该系列收录了许多优质的人工智能算法博文,包括机器学习和自然语言处理等,持续更新中,欢迎各位关注~   介绍完Python-web开发学习笔记(2)--- HTML基础_尚拙谨言的博客-CSDN博客,我们来搞一个简单的网站小案例,带大家更进

    2024年02月06日
    浏览(30)
  • web安全学习笔记【22】——文件上传(1)

    WEB攻防-PHP应用文件上传函数缺陷条件竞争二次渲染黑白名单JS绕过 演示案例: PHP-原生态-文件上传-前后端验证 PHP-原生态-文件上传-类型文件头验证 PHP-原生态-文件上传-后缀黑白名单验证 PHP-原生态-文件上传-解析配置二次渲染 PHP-原生态-文件上传-逻辑缺陷函数缺陷 #知识点

    2024年04月17日
    浏览(25)
  • 【Python】flask框架请求体数据,文件上传,请求头信息获取方式案例汇总

    ✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN新星创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开

    2024年03月22日
    浏览(25)
  • python flask创建服务器实现文件的上传下载,已获千赞

    } 二、后端代码(python) import os from string import Template from flask import Flask, send_file,request,jsonify from flask_cors import CORS import time app = Flask( name ) absolute = os.path.dirname( file ) CORS(app) app.debug = True FOLDER = os.path.join(absolute, ‘save_file’) HOST = “localhost” PORT = 8080 UPLOAD = ‘upload’ app.config

    2024年04月22日
    浏览(26)
  • Python web实战之Django的文件上传和处理详解

      :Python Web开发、Django、文件上传、文件处理 今天分享一下Django的文件上传和处理。 在开始深入讲解Django的文件上传和处理之前,先了解一下文件上传的基本原理。当用户选择要上传的文件后,该文件会被发送到服务器端,并存储在服务器的某个位置上。我们需要在

    2024年02月13日
    浏览(33)
  • Python Flask Web + PyQt 前后端分离的项目—学习成绩可视化分析系统

    使用工具: Python,PyQt ,Flask ,MySQL 注:制作重点在网页端,因此网页端的功能更全 WEB界面展示: 系统登录分为管理员,老师,学生3部分 管理员统一管理所有的账号信息以及登录信息 老师管理,添加,修改班级,学生的成绩信息 学生只能查看成绩信息,不能做出修改    

    2024年02月20日
    浏览(44)
  • 如何把本地flask项目(框架)上传到服务器(Linux),并后台持续运行(包括requirements文件生成,python项目与域名绑定,保姆级教程)

     2023年中旬,参加了一个比赛,需要搭建一个网站。在不断探索琢磨之后,搭建了一个基于flask的web。直接上干货: 一、首先,在本地准备好自己的flask项目。包括最基本的三个文件: 然后准备生成requirements.txt文件,这个文本文件会告诉服务器你的项目运行所需要的环境,即

    2024年02月04日
    浏览(37)
  • Flask Web API构建实例:GET、POST文件上传、静态资源下载一网打尽

      以下是一个通过 Flask 构建 Web API 服务的详细示例,包含了各类请求(GET、POST、文件上传、静态资源下载)、每个方法独立配置路由、参数接收和解析、请求日志记录以及异常日志记录。请确保你已经安装了 Flask,你可以使用以下命令进行安装: 接下来是一个包含详细注释

    2024年02月04日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包