博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
flask-uploads扩展的使用笔记
阅读量:4677 次
发布时间:2019-06-09

本文共 1791 字,大约阅读时间需要 5 分钟。

涉及的flask扩展
flask的一个文件上传扩展, 提供了UploadSet这个概念
(中文) 很强大的表单的扩展
bootstrap的flask扩展, 结合模版使用, 此处用到quick_form功能

 

from flask import Flask, render_templatefrom flask_uploads import UploadSet, IMAGES, configure_uploadsfrom flask_wtf import Formfrom wtforms import SubmitFieldfrom flask_wtf.file import FileField, FileAllowed, FileRequiredfrom 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_mypicconfigure_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 = None    if form.validate_on_submit():        filename = form.upload.data.filename        url = 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     

uploaded: {% if url %} {
{url}}{% endif %}

5 {
{ wtf.quick_form(form, enctype="multipart/form-data") }} 6 {% endblock page_content %}

 

转载于:https://www.cnblogs.com/himir/p/5940705.html

你可能感兴趣的文章
GPS定位 测试
查看>>
前端使用AngularJS的$resource,后端ASP.NET Web API,实现增删改查
查看>>
探索从 MVC 到 MVVM + Flux 架构模式的转变
查看>>
传统认知PK网络认知 刚子扯谈烤串认知
查看>>
字节数组java加密与解密
查看>>
矩形运算
查看>>
php 备份mysql数据库(joomla数据库可直接使用,其他数据库稍作修改即可)
查看>>
使用HttpSessionListener接口监听Session的创建和失效
查看>>
20181029 T2 寻宝游戏
查看>>
C++变量作用域、生存期、存储类别
查看>>
GOF23设计模式
查看>>
Python自然语言处理学习笔记(41):5.2 标注语料库
查看>>
山寨“饿了么”应用中添加菜品数量按钮效果
查看>>
TCP/IP系列——长连接与短连接的区别
查看>>
Linux基础——常用命令
查看>>
Python学习笔记三(文件操作、函数)
查看>>
二进制分组
查看>>
[ACM] POJ 1068 Parencodings(模拟)
查看>>
Drools只执行一个规则或者执行完当前规则之后不再执行其他规则(转)
查看>>
冰点还原8.57 官方中文版下载
查看>>