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

这里有两个示例说明:实现在 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日

相关文章

  • Python的flask常用函数route()

    Python Flask的route()函数 @app.route(rule, options) 是flask框架中用于定义路由的装饰器,route()函数就是用来注册路由的。rule为路由匹配规则,options为路由附带属性,例如请求的方式限制、自定义的参数等。route()函数可以帮助我们将HTTP请求映射到一个具体的处理程序上。 下面是具体的示例: …

    Flask 2023年5月16日
    00
  • Python的Flask框架中实现登录用户的个人资料和头像的教程

    以下是Python Flask框架实现用户个人资料和头像的教程攻略,分为两部分: 用户个人资料的实现 1.1 创建用户资料模型 首先,我们需要在数据库中创建一个用户资料模型(model),用来存储用户个人信息。模型主要包括以下几个字段:用户名、电子邮箱、密码、性别、生日等等。具体实现可参考以下代码: from flask_login import UserM…

    Flask 2023年5月15日
    00
  • flask框架路由常用定义方式总结

    让我为你详细讲解一下“flask框架路由常用定义方式总结”的完整攻略。 什么是flask框架? Flask是一个基于 Python 语言的轻量级 Web 开发框架,使用 Werkzeug 作为 Web 服务器网关接口,使用 Jinja2 模板引擎,这两个库也都是 Flask 标配。它设计精简,易于扩展,使它成为很多 Web 开发者喜欢使用的框架之一。 什么是…

    Flask 2023年5月15日
    00
  • Python通过四大 AutoEDA 工具包快速产出完美数据报告

    下面我将详细讲解“Python通过四大 AutoEDA 工具包快速产出完美数据报告”的完整攻略,包括两个示例说明。 什么是AutoEDA AutoEDA,即自动探索性数据分析,是一种利用机器学习和人工智能技术来自动分析和解释数据的方法。常用于数据可视化、数据预处理、特征选择和模型评估等领域。 四大AutoEDA工具包介绍 四大AutoEDA工具包分别为:Pa…

    Flask 2023年5月16日
    00
  • Flask模板引擎之Jinja2语法介绍

    Flask模板引擎之Jinja2语法介绍 在Flask中,Jinja2是为构建动态web应用程序提供的一个模板引擎,可以轻松地将应用程序与HTML(或其他文本)集成,并在呈现页面之前修改动态内容。 变量 在Jinja2中,使用双大括号来包含变量名,如 {{ variable_name }}。 <!DOCTYPE html> <html&gt…

    Flask 2023年5月15日
    00
  • python如何构建mock接口服务

    构建Mock接口服务是在开发过程中很常见的需求,可以用来简化单元测试、模拟外部服务等。下面分步骤说明如何使用Python构建Mock服务。 1. 安装 Flask 和 requests-mock 使用Python搭建Mock服务,需要使用 Flask 框架和 requests-mock 库。可以通过 pip 命令安装: pip install flask r…

    Flask 2023年5月15日
    00
  • Flask 数据库迁移详情

    Flask 数据库迁移是将数据库中的表结构变化应用到现有数据库上的过程。在 Flask 应用中,通常使用 Flask-Migrate 扩展来实现数据迁移。下面是实现 Flask 数据库迁移的完整攻略。 准备工作 在使用 Flask-Migrate 扩展进行数据库迁移之前,需要先安装好 Flask 和 Flask-Migrate 扩展。 安装 Flask 可以…

    Flask 2023年5月16日
    00
  • python jinja2模板的使用示例

    下面我将详细讲解“python jinja2模板的使用示例”的完整攻略,包含两个示例。 1. 安装Jinja2 首先,你需要安装Jinja2。如果你使用的是Python3,可以通过如下命令进行安装: pip3 install jinja2 2. 示例一 假如你有这样一个 hello.html 的模板文件: <html> <head> …

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