flask-uploads扩展的使用笔记
flask-uploads | flask的一个文件上传扩展, 提供了UploadSet这个概念 |
flask-wtf(中文) | 很强大的表单的扩展 |
flask-bootstrap | bootstrap的flask扩展, 结合模版使用, 此处用到quick_form功能 |
from flask import Flask, render_template from flask_uploads import UploadSet, IMAGES, configure_uploads from flask_wtf import Form from wtforms import SubmitField from flask_wtf.file import FileField, FileAllowed, FileRequired from flask_bootstrap import Bootstrapapp = Flask(__name__)# 新建一个set用于设置文件类型、过滤等 set_mypic = UploadSet('mypic') # mypic# 用于wtf.quick_form()模版渲染 bootstrap = Bootstrap(app)# mypic 的存储位置, # UPLOADED_xxxxx_DEST, xxxxx部分就是定义的set的名称, mypi, 下同 app.config['UPLOADED_MYPIC_DEST'] = './static/img'# mypic 允许存储的类型, IMAGES为预设的 tuple('jpg jpe jpeg png gif svg bmp'.split()) app.config['UPLOADED_MYPIC_ALLOW'] = IMAGES# 把刚刚app设置的config注册到set_mypic configure_uploads(app, set_mypic)app.config['SECRET_KEY'] = 'xxxxx'# 此处WTF的SCRF密码默认为和flask的SECRET_KEY一样 # app.config['WTF_CSRF_SECRET_KEY'] = 'wtf csrf secret key'class UploadForm(Form):'''一个简单的上传表单'''# 文件field设置为‘必须的’,过滤规则设置为‘set_mypic’upload = FileField('image', validators=[FileRequired(), FileAllowed(set_mypic, 'you can upload images only!')])submit = SubmitField('ok')@app.route('/', methods=('GET', 'POST')) def index():form = UploadForm()url = Noneif form.validate_on_submit():filename = form.upload.data.filenameurl = set_mypic.save(form.upload.data, name=filename)return render_template('index.html', form=form, url=url)if __name__ == '__main__':app.run(debug=True)
html文件:
1 {% import "bootstrap/wtf.html" as wtf %} 2 3 {% block page_content %} 4 <h4>uploaded: {% if url %} {{url}}{% endif %}</h4> 5 {{ wtf.quick_form(form, enctype="multipart/form-data") }} 6 {% endblock page_content %}
转载于:https://www.cnblogs.com/himir/p/5940705.html
flask-uploads扩展的使用笔记相关推荐
- ES6基础3(扩展)-学习笔记
文章目录 ES6基础3(扩展)-学习笔记 字符串扩展 数值扩展 函数扩展 扩展运算符 ES6基础3(扩展)-学习笔记 字符串扩展 //扩展//字符串扩展charAt(); //返回指定索引位置的字符 ...
- flask 框架第一天学习笔记
Flask Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架. Flask 本身相当于一个内核,其他几乎 ...
- FLASK RESTFUL TOKEN用户验证笔记
笔记1 REST要求无状态,可以理解为没有session,而且session的存储遇到分布式集群的情况就比较难搞,所以对于用户验证目前网上大多数做法是token方式,第一次登录的时候,先提交用户名密码 ...
- Flask之扩展flask-migrate
flask-migrate一个用来做数据迁移的falsk扩展,一般都是结合flask-sqlalchemy使用,在上一篇文章中我也介绍了这个扩展,需要的小伙伴可以看一下,后续我会将flask-sqla ...
- 学习 PHP SOAP 扩展的一些笔记
对 SOAP 的相关学习就先告此一段落,这是最后一篇文章用来记录下学习过程中的一些笔记和心得. 前面三篇文章分别是: <SOAP 介绍> <SOAP Web 服务介绍> < ...
- flask 框架web开发视频笔记
requirements文件 python 项目种必须包含一个requirements文件,用于记录所有依赖包以及其精确得版本号,以遍在新环境种进行部署操作. 在虚拟环境种使用以下命令将当前虚拟环境中 ...
- Flask的快速入门详细笔记
Flask的框架结构对应关系及理解 1.简介 简单介绍下Flask是一个轻量级的web前端框架,不像django那样本身具备一套完整的页面体系,轻量级说明了完全可以自定义,从功能逻辑到业务处理,都可以 ...
- C# 动态语言扩展(学习笔记)
1 概述: 在早期的.NET Framework中,"Var"关键字和匿名方法开启了C#走向动态的道路,在4.0中,动态类型被添加进去.尽管C#是一个静态类型的语言,但这些额外的添 ...
- Flask入门教程(视频教程笔记)
初始化flask项目
最新文章
- MyBatis 一个简单配置搞定数据加密解密!
- centos7下安装gcc7
- 新建了一个英文Blog
- JSP简单练习-获取表单数据
- 欧拉函数的一道练习题(附加容斥做法)
- python怎么打不开图片_为什么pygame打不开图片 各种格式的都试过了
- R开发(part7)--环境空间
- pycharm打包.py程序为可执行文件exe
- java跟python对比_【多年的Java程序员总结Java与Python的对比 】
- 将z-blog改成英文blog所遇到的问题
- 03-18 OpenSTF-手机设备管理平台
- 数组问题常用的O(N)算法:单调队列
- ceph_OSD的添加删除
- SpringBoot2.0系列教程(四)Springboot框架自定义消息转换器
- 东汉唯物主义哲学家——王充
- 图片太普通,教你轻松制作画中画特效
- 8086与8255实现数码管动态显示
- 台式计算机的日常保养,台式电脑硬件日常维护
- Mysql 的utf8编码 PK utf8mb4编码
- 支持markdown的服务器,Algernon:支持Lua,Markdown,HTTP/2的全功能Web服务器
热门文章
- collection.stream()以及collect()方法
- redis 将key的有效时间设置为不过期命令
- RabbiMQ基础以及spring-boot-starter-amqp使用
- ORACLE索引重建方法与索引的三种状态
- 使用DataX从ORACLE同步数据到MYSQL
- Android Studio 2.3的各种新增疑难杂症
- keep-alive + vuex + mint + Infinite scroll 保存分页列表数据
- Learn Python 014: Funtions
- sql server生成不重复的时间字符串
- 小蚂蚁学习mysql性能优化(8)--数据库结构优化--范式化和反范式化,水平分表,垂直分表...