flask 实现上传图片并缩放作为头像的例子

yizhihongxing

这里有两个示例说明:实现在 Flask 应用中上传图片并缩放作为头像。

示例 1:上传图片并保存到本地

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

app = Flask(__name__)

app.config['UPLOAD_FOLDER'] = '/path/to/uploads'

@app.route('/upload', methods=['POST'])
def upload_file():
    file = request.files['file']
    if file:
        filename = secure_filename(file.filename)
        file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
        return 'File uploaded successfully'
    else:
        return 'No file uploaded'

这个示例展示了如何在 Flask 应用中上传图片,并将其保存到指定的本地文件夹中。首先设置文件上传的目标文件夹 UPLOAD_FOLDER,然后在路由 /upload 中检查请求是否包含文件。如果请求中包含文件,将其保存到指定目录中。

示例 2:上传图片并对其进行缩放

from flask import Flask, request, redirect, render_template
from PIL import Image

app = Flask(__name__)

app.config['UPLOAD_FOLDER'] = '/path/to/uploads'
app.config['ALLOWED_EXTENSIONS'] = set(['png', 'jpg', 'jpeg', 'gif'])

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

@app.route('/')
def upload_form():
    return render_template('upload.html')

@app.route('/upload', methods=['POST'])
def upload_file():
    file = request.files['file']
    if file and allowed_file(file.filename):
        filename = secure_filename(file.filename)
        file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
        image = Image.open(os.path.join(app.config['UPLOAD_FOLDER'], filename))
        image.thumbnail((128, 128))
        image.save(os.path.join(app.config['UPLOAD_FOLDER'], 'thumb_' + filename))
        return 'File uploaded successfully'
    else:
        return 'Please upload a valid image file'

这个示例展示了如何在 Flask 应用中上传图片,并对其进行缩放。首先设置文件上传的目标文件夹 UPLOAD_FOLDER,以及允许上传的文件扩展名 ALLOWED_EXTENSIONS。然后定义一个方法 allowed_file,用于检查上传的文件是否属于允许上传的文件类型。在路由 / 上展示一个上传图片的表单,向路由 /upload 提交时,检查上传的文件是否属于允许上传的文件类型,并保存到指定目录中。然后使用 Pillow 库打开图片,并对图片进行缩放,最后将缩略图保存到指定目录中。

以上是两个示例的完整攻略,您可以参考并进行自己的代码实现。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:flask 实现上传图片并缩放作为头像的例子 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Flask之flask-session的具体使用

    接下来我将详细讲解Flask中flask-session的具体使用的攻略,包括如何安装和配置session,如何在Flask中使用session,以及两个示例的具体说明。 安装和配置flask-session 安装flask-session,可以使用pip命令来安装:pip install flask-session 在Flask项目中的配置文件中添加以下配…

    Flask 2023年5月15日
    00
  • Flask中sqlalchemy模块的实例用法

    接下来我为您详细介绍Flask中sqlalchemy模块的实例用法的完整攻略。 1. 安装和配置 首先需要安装Flask和sqlalchemy模块,可以使用pip命令来进行安装。 pip install Flask pip install sqlalchemy 安装完成后,首先需要在Flask应用程序中导入sqlalchemy模块: from flask_s…

    Flask 2023年5月15日
    00
  • python miniWeb框架搭建过程详解

    当我们要搭建自己的网站,动态web框架是不可或缺的。Python是一种非常流行的编程语言,它拥有丰富的web框架,比如Flask、Django等。而如果我们想要更深入了解web框架的原理,也可以尝试手动搭建一个miniWeb框架。下面,我们将分为以下几个步骤,详细讲解Python miniWeb框架的搭建过程: 搭建服务器 首先,我们需要一个能够运行Pyth…

    Flask 2023年5月16日
    00
  • 解决flask接口返回的内容中文乱码的问题

    要解决Flask接口返回内容中文乱码的问题,需要注意以下两点: Flask框架中默认使用的编码格式为UTF-8,因此在代码中使用中文字符串时,需要将其以UTF-8编码格式保存。 在返回数据时,需要将数据编码为UTF-8格式,以确保传递的内容不会出现乱码问题。 下面是两个示例说明: 示例1:将中文字符串以UTF-8格式保存并返回 from flask impo…

    Flask 2023年5月15日
    00
  • 在AngularJs中设置请求头信息(headers)的方法及不同方法的比较

    接下来我将详细讲解“在AngularJs中设置请求头信息(headers)的方法及不同方法的比较”。 一、背景 在前端开发过程中,经常需要向服务器请求数据,有时候需要在请求头(header)中添加一些信息,比如认证信息、token信息等等。AngularJs提供了多种方法来在请求头中设置信息,本文将详细介绍这些方法,并进行比较。 二、常用方法 1. $htt…

    Flask 2023年5月16日
    00
  • Python动态配置管理Dynaconf的实现示例详解

    针对“Python动态配置管理Dynaconf的实现示例详解”这个话题,我们可以分成以下几个部分进行讲解: 什么是Dynaconf Dynaconf的使用方法 示例一:使用Dynaconf管理Flask应用的配置 示例二:使用Dynaconf和Docker容器管理Django应用的配置 1. 什么是Dynaconf Dynaconf是一个Python库,旨在…

    Flask 2023年5月16日
    00
  • Flask request 对象介绍

    Flask Request 对象介绍 在 Flask 应用中,Request 对象是非常重要的一个对象,因为它提供了访问客户端发送的 HTTP 请求信息的方法和属性。 在本文中,我们将详细介绍 Flask Request 对象的用法和属性。 Request 对象的属性 在 Flask 应用中,Request 对象包含了客户端发送的 HTTP 请求信息,可以通…

    Flask 2023年5月16日
    00
  • flask框架蓝图和子域名配置详解

    下面是详细讲解“flask框架蓝图和子域名配置详解”的完整攻略。 什么是蓝图 蓝图(blueprint)是Flask程序中的一个可重用组件,它让一个应用可以更好地组织代码。通过将应用的路由和处理函数分组,蓝图可以更好地为大型和组织良好的应用程序提供支持。 蓝图还可以通过其他方式增强应用程序。例如,我们可以使用蓝图来处理静态文件和模板。 蓝图对象是由 Flas…

    Flask 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部