Python-FLASK上传文件

一、HTML文件

1、avator.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<form method="post" enctype="multipart/form-data" action="upload"><input type="file" name="avator" id="avator" /><input type="submit" name="save" id="save" />
</form>
</body>
</html>

1、upload.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>上传成功</title>
</head>
文件名:{{ myfile }}
<p>你的头像上传成功!</p>
<img width="80px" src="/static/image/{{ myfile }}" />
</body>
</html>二、上传文件
  1. file = request.files['avator']

    • request.files 是一个特殊的字典对象,用于存储通过HTTP请求上传到Flask应用程序的文件。
    • 'avator' 是请求中表单字段的名称。在HTML表单中,有一个这样的文件输入:<input type="file" name="avator">。这里的name属性值就是'avator'
    • request.files['avator'] 返回一个Werkzeug的FileStorage对象,该对象表示用户上传的文件。这个对象包含了文件的内容及其相关信息,比如文件名。
  2. file.save(...):

    • file 变量此时是一个FileStorage对象,包含了上传文件的所有信息。
    • file.save(...) 是FileStorage对象的方法,用于将上传的文件保存到服务器的文件系统中。save()方法的参数是你希望文件被保存在服务器上的路径。

因此,在这两行代码中,file是一个变量名,用于引用FileStorage对象。file承载了上传的文件数据,并提供了一些方法(如save)用于处理文件,比如将其保存到磁盘。

@app.route('/upload', methods=['POST'])
def upload():file = request.files['avator']myfilename=file.filenamefile.save('static/image/'+myfilename)return render_template('upload.html', myfile=myfilename)

还可以这样写:

@app.route('/upload', methods=['POST'])

def upload():

file = request.files['file']

file_name = file.filename

file_path = os.path.join('path/to/save/file/', file_name)

file.save(file_path)

return render_template('upload.html', myfile=myfilename)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/51792.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python】如何使用pip,安装第三方库和生成二维码、操作Excel

文章目录 第三方库使用 pip安装第三方库 生成二维码1. 确定使用哪个库2. 查看对应文档3. 开始操作 操作 Excel1. 安装 xlrd2. 编写代码 第三方库 第三方库就是别人已经实现好了的库&#xff0c;我们可以拿过来直接使用 虽然标准库已经很强大了&#xff0c;但是终究是有限的&am…

英语写作中“详述”expand on/upon的用法

“详述”的简单表达是explain ……in detail 或describe……in detail等。 &#xff08;见&#xff1a;【英语写作中用“解释”explain、elucidate、articulate、explicate 替代“描述”describe - CSDN App】&#xff09; expand on/upon是“详述”的另一表达&#xff0c;在需…

MLM之Qwen:Qwen2-VL的简介、安装和使用方法、案例应用之详细攻略

MLM之Qwen&#xff1a;Qwen2-VL的简介、安装和使用方法、案例应用之详细攻略 目录 Qwen2-VL的简介 1、主要增强功能&#xff1a; 2、模型架构更新&#xff1a; 3、性能 图像基准测试 视频基准测试 代理基准测试 多语言基准测试 4、新闻 5、限制 Qwen2-VL的安装和使用…

微服务间调用

一、restTemplate 1、先将restTemplate注册成为一个bean Configuration public class RemoteCallConfig {Beanpublic RestTemplate restTemplate() {return new RestTemplate();} }2、实现代码 private void handleCartItems(List<CartVO> vos) {// TODO 1.获取商品id…

python requests 常用小工具,代码片,速查,整理

起因(目的): 爬虫其实是很零碎的事情。 小工具&#xff0c; 就像是小螺丝一样&#xff0c; 有空整理一下工具箱。 过程: 自定义请求头&#xff0c;将 Accept-Language 设置为美国的英语。 尤其爬国外的网站&#xff0c; 不然会出现很奇怪的中文。 headers {# 将 Accept-La…

Nginx使用alias代理PHP项目提示FastCGI sent in stderr: “Primary script unknown“ 问题完美解决

踩坑记录 为了方便运营推广,我们有一个需求就是用一个域名达到访问两个PHP项目的目的,本来想着这很简单,就是一个代理解决问题,于是便非常潇洒的分分钟配置了一下,如下: server {listen 80;server_name ab.com;index index.html index.htm index.php index.shtml;root /…

【网络安全】服务基础第一阶段——第八节:Windows系统管理基础---- Web服务与虚拟主机

目录 一、WWW概述 1.1 HTML 1.2 URI与URL 1.2.1 URL&#xff08;统一资源标识符&#xff0c;Uniform Resource Locator&#xff09; 1.3 HTTP 1.3.1 HTTP请求&#xff1a; 1.3.2 HTTP响应 1.3.3 状态码 1.4常见Web URL格式 实验一、网站搭建 1&#xff09;访问失败可…

如何基于numpy和scipy实现曲面的最大梯度计算与显示

大家在做三维可视化研究过程中,经常需要做三维曲面的绘制和相交分析,在不知道三维曲面方程的情况下,如何基于曲面散点数据计算曲面的最大梯度点和梯度线的三维可视化是大家基于曲面分析研究中的重点关注的问题,本文在python环境下,基于numpy、pandas、scipy和matplotlib等…

超详细Git基本命令使用(二)

&#x1f600;前言 本篇博文是关于 Git基本命令的使用&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的满意是我的动力&#x1f6…

【C++】list的使用和list的模拟实现和迭代器失效问题

目录 一、list 的简单介绍 二、list 的基本使用 &#x1f389;list的构造 &#x1f389;list iterator 的使用 &#x1f389;list capacity &#x1f389;list element access &#x1f389;list modifiers &#x1f389;list operator 三、list 的模拟实现 &#x…

【一个简单的整数问题】

问题 TLE代码 #include <bits/stdc.h> using namespace std; const int N 1e510; int b[N]; void add(int l, int r, int d) {b[r1] - d;b[l] d; } int query(int x) {int retval 0;for(int i 1; i < x; i){retval b[i];}return retval; } int main() {int n, m…

C++基础面试题 | 介绍C++中三种智能指针的使用场景?

月落乌啼霜满天&#xff0c;江枫渔火对愁眠。 - 《枫桥夜泊 / 夜泊枫江》(张继) 回答重点 在C中的智能指针利用RAII实现内存分配的管理&#xff0c;避免内存泄漏和其他与动态内存分配相关的问题。C11中提供了三种主要的智能指针&#xff1a;std::unique_ptr、std::shared_ptr和…

【软件测试】测试分类

系列文章目录 第一章 【软件测试】常见的开发模型和测试模型 第二章 【软件测试】bug以及测试用例的设计方法 文章目录 系列文章目录前言一、按照测试目标进行分类二、按照执行方式分类三、按照测试方法四、按照测试阶段分类五、按照实施组织分类总结 前言 在前文中简单了解了…

【编程底层思考】线程阻塞时一定会释放cpu吗

线程阻塞时是否释放CPU取决于阻塞的原因和操作系统的行为。以下是一些具体情况&#xff1a; 1. 阻塞等待资源&#xff1a;当线程因为等待某个资源&#xff08;如锁、信号量、条件变量等&#xff09;而阻塞时&#xff0c;它通常会释放CPU&#xff0c;以便其他线程可以运行。在这…

MATLAB绘图基础4:MATLAB函数

参考书&#xff1a;《 M A T L A B {\rm MATLAB} MATLAB与学术图表绘制》(关东升)。 4.函数 4.1 定义函数 创建新函数文件 % 1.函数文件&#xff1a; % 1.1 函数文件包含一个或多个函数的定义; % 1.2 函数文件包含函数头,用于指定函数名称和输入参数,如:function output func…

掌握测试的艺术:深入探索Python的pytest库

文章目录 **掌握测试的艺术&#xff1a;深入探索Python的pytest库**背景&#xff1a;为什么选择pytest&#xff1f;pytest是什么&#xff1f;如何安装pytest&#xff1f;5个简单的库函数使用方法1. pytest.main()2. pytest.skip()3. pytest.mark.parametrize()4. pytest.raises…

python 地理抠图

python 地理抠图 在Python中进行地理抠图&#xff0c;可以使用geopandas库&#xff0c;它是基于pandas的地理空间数据处理库。以下是一个简单的例子&#xff0c;展示如何根据一个多边形区域来抠出该区域内的地理数据。 首先&#xff0c;安装必要的库&#xff08;如果尚未安装&…

力扣1425.带限制的子序列和

力扣1425.带限制的子序列和 单调队列优化dp f[i] 表示在数组的前 i 个数中进行选择&#xff0c;并且恰好选择了第 i 个数&#xff0c;可以得到的最大和状态转移&#xff1a;f[i] max(max(f[j]) , 0) nums[i];单调队列优化&#xff1a;储存前K个f[i]&#xff0c;并且单调&…

Go 语言生产服务故障案例精析

大多数 Go 开发者都停留在简单的增删改查层面,对 Go 语言本身掌握程度不够,对常用依赖或者开源组件掌握不够,在开发项目过程中总会不经意间引入一些千奇百怪的问题,并且在遇到线上问题时往往束手无策。下面列举一些线上问题以及相应的解决思路,希望大家能从这些问题中吸取…

Debian 安装 OpenSSH 服务器

Debian 安装 OpenSSH 服务器 先查看装了没安装 OpenSSH 服务器软件包启动 SSH 服务&#xff1a;查看服务状态修改 SSH 配置&#xff08;测试机可跳过&#xff09;连接测试文件收发 lrzsz 先查看装了没 apt-cache policy openssh-server安装 OpenSSH 服务器软件包 更新软件包列…