文章目录

  • 上传文件方式一:
    • 1.index.html文件:
    • 2.主文件main.py:
  • 上传文件方式二:
    • 1.index2.html文件:
    • 2.main.py文件:
  • 上传文件方式三:
    • 1.index3.html文件:
    • 2.main.py文件:

上传文件方式一:

1.index.html文件:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>WTF</title>
</head>
<body><form action="" method="POST">{{login.csrf_token()}}{{login.file.label}}{{login.file}}<br>{{login.submit}}</form>
</body>
</html>

2.主文件main.py:

import  os
from flask_wtf import FlaskForm
from werkzeug.utils import secure_filename
from wtforms.validators import DataRequired,EqualTo
from wtforms import StringField,PasswordField,SubmitField,FileField
from flask import  Flask,render_template,redirect,url_for,jsonify,abort,requestapp=Flask(__name__)
app.secret_key='WTF_FILE'class Register(FlaskForm):file=FileField(label='文件选择: ',validators=[DataRequired()])submit=SubmitField(label='提交')#自定义错误
@app.errorhandler(404)
def handel_error(error):return jsonify('Failure'),404@app.route('/index',methods=['POST','GET'])
def index():login=Register()filename=''if request.method=='POST':if login.validate_on_submit():filename=login.file.dataprint('filename: {}'.format(filename))return 'Valid Successed'else:abort(404)return render_template('index.html',login=login,filename=filename)if __name__ == '__main__':print('Pycharm')app.run(debug=True)

上传文件方式二:

1.index2.html文件:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>WTF</title>
</head>
<body><form action="/index" method="POST" enctype="multipart/form-data">{{login.csrf_token()}}{{login.file.label}}{{login.file}}<br><input type="submit" value="提交"></form>
</body>
</html>

2.main.py文件:

import  os
from flask_wtf import FlaskForm
from flask_wtf.file import FileField
from werkzeug.utils import secure_filename
from wtforms.validators import DataRequired,EqualTo
from wtforms import StringField,PasswordField,SubmitField
from flask import  Flask,render_template,redirect,url_for,jsonify,abort,requestapp=Flask(__name__)
app.secret_key='WTF_FILE'class Register(FlaskForm):file=FileField(label='文件选择: ')#自定义错误
@app.errorhandler(404)
def handel_error(error):return jsonify('Failure'),404@app.route('/index',methods=['POST','GET'])
def index():login=Register()filename=''if request.method=='POST':if login.validate_on_submit():#对文件名进行安全检测filename=secure_filename(login.file.data.filename)login.file.data.save('images/'+filename)print('filename: {}'.format(filename))return 'Valid Successed'else:abort(404)return render_template('index2.html',login=login,filename=filename)if __name__ == '__main__':print('Pycharm')app.run(debug=True)

上传文件方式三:

1.index3.html文件:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>File</title>
</head>
<body><form action="http://127.0.0.1:5000/index" method="POST" enctype="multipart/form-data"><input type="file" name="filename" value="上传文件"><br><input type="submit" name="submit" value="提交"><br></form>
</body>
</html>

2.main.py文件:

import os
from werkzeug.utils import secure_filename
from flask import Flask,render_template,redirect,url_for,abort,jsonify,requestapp=Flask(__name__)#自定义错误
@app.errorhandler(404)
def handel_error():return jsonify('The file has been upload fail!'),404@app.route('/index',methods=['POST','GET'])
def index():if request.method=='POST':file=request.files.get('filename')if file is None:abort(404)filename=file.filename#对文件名进行安全检测filename=secure_filename(filename)#os.path.dirname 去掉文件名,返回目录file.save(os.path.dirname(__file__)+'\\images\\'+filename)print('filename: {}'.format(filename))return jsonify('Upload Successed!')return render_template('index3.html')if __name__ == '__main__':print('Pycharm')app.run(debug=True)

flask中使用FileField上传文件的两种方式+前端页面上传文件(flask三种上传文件方式)相关推荐

  1. 计算机新建文件夹的步骤打开,Win10新建文件夹假死,不要慌!教你这三种方法,轻松应对。...

    原标题:Win10新建文件夹假死,不要慌!教你这三种方法,轻松应对. 使用电脑开启文件夹是我们日常电脑使用过程中,经常会进行操作的事情.而有时我们在使用win10打开文件夹的时候会出现假死的现象,打开 ...

  2. java 解析csv_java解析CSV文件(getCsvData 解析CSV文件 zipFiles 打成压缩包 exportObeEventDataExcel 前端页面响应)...

    //CSVUtil.class为类名 private static final Logger log = Logger.getLogger(CSVUtil.class); //filepath 可以为 ...

  3. python中spark有什么功能_Spark SQL是什么,提供的主要功能有哪三种?

    Spark SQL允许大家在Python.Java以及Scala中使用数据帧;利用多种结构化格式读取并写入数据;通过SQL进行大数据查询. Spark SQL属于Spark用于处理结构化与半结构化数据 ...

  4. export function函数传参_从底层看前端(七)—— JavaScript到底有多少种函数?

    在上篇文章中我们了解到了执行上下文是什么,也知道了任何语句的执行都会依赖特定的上下文. 一旦上下文被切换,整个语句的效果可能都会发生变化.那么,切换上下文的时机就显得非常重要. 在JavaScript ...

  5. python中两个集合的运算并交补_三种方式实现 Python 中的集合的交、并、补运算...

    文章目录 三种方式实现 Python 中的集合的交.并.补运算 一 背景 集合这个概念在我们高中阶段就有所了解,毕业已多年,我们一起回顾一下几个集合相关的基本概念吧? 集合是指具有某种特定性质的具体的 ...

  6. linux自动点击软件上的按钮有什么用,教会你Linux Shell自动交互的三种方法

    你了解Linux系统么?你是Linux系统的应用者么?如果你要学习linux,你可能会遇到Linux Shell自动交互问题,这里将介绍Linux Shell自动交互的解决方法,在这里拿出来和大家分享 ...

  7. 文件权限管理 -- u+s、g+s、o+t/三种用户权限

    liunx中有文件有三种权限,用户权限,群组权限,其他用户权限,分别为r(可写)w(可读)x(可执行)rwxrwx ,还有s/t特殊权限,可分为: rwsrwxrwx 用户权限出现s,替代了x rwx ...

  8. Html和Markdown中的空格, nbsp; ensp; emsp; 以及 thinsp; zwnj; zwj;三种Unicode空格

    HTML和Markdown可以用以下转义字符分隔字符   ,   ,   ,   , ‌ ,‍  的宽度,可运行于所有主流浏览器.其他几种空格(   ,   ,   , ‌ ,‍)在不同浏览器中宽度各 ...

  9. java 三种错误类型 区别_请列举至少三种在java语言中发生“严重错误”的情况...

    [简答题]自已编写一个自定义非整数异常类,来处理一个异常 [填空题]捕获异常时,可以把catch捕获的异常对象( ),使上层try-catch结构继续处理该异常事件;也可以把异常对象转换为其它异常对象 ...

最新文章

  1. 图像配准----RANSAC
  2. 使用OpenCV为视频中美女加上眼线
  3. 12306架构到底是不是国内最牛逼的架构
  4. 下划线转驼峰,并且首字母大写
  5. 性能远超AtomicLong,LongAdder原理完全解读
  6. qpython numpy_Python-Numpy全面精简教程
  7. (原创)对某国的一次渗透
  8. LVM逻辑卷,RAID磁盘阵列
  9. Myeclipse项目加入maven支持
  10. python的多线程应用前景_什么是线程(多线程),Python多线程的好处
  11. HDU1754 —— I Hate It 线段树 单点修改及区间最大值
  12. Windows下MySql主从配置实战教程
  13. java使用SAX接口解析xml文件
  14. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_01 File类_4_File类的构造方法...
  15. c语言 软件编程入门自学,软件编程入门自学
  16. 一些开源的IOS项目(wifi扫描 条形码扫描 tcp/ip 等等)
  17. AspectJ+AJDT+用Ant管理AspectJ项目+AspectJ教程
  18. ps放大图片后变模糊怎么办,如何变清晰?
  19. 路由器无线中继WDS\WISP\CLINENT+AP优劣
  20. php doctrine datetime,关于php:Doctrine 2.1 – datetime列的默认值

热门文章

  1. Django项目test中的mock概述
  2. 研究SLAM,对编程的要求有多高?
  3. 如何使用OpenCV和Socket进行视频聊天?
  4. OpenCV图像旋转的原理与技巧
  5. web3j官网的完整中文翻译(java开发区块链以太坊应用的开源类库)
  6. Factory-pattern 三种工厂模式
  7. HPQLOCFG 批量管理 HP iLO 实践
  8. Django中的Form
  9. iOS 导航色差问题解决方案
  10. 手机壳释放致癌物质“苯”吗?专家:确实会