使用flask-dropzone 上传图片文件
引用 http://greyli.com/flask-dropzone/
现在需要上传图片文件的页面使用jijin2渲染,由于是使用flask-dropzone的,所以我们使用dropzone的css和js 来进行一个渲染
首先
# 先添加这个 css,js 和样式
{{ dropzone.load_css() }}
{{ dropzone.load_js() }}
{{ dropzone.style('border: 2px dashed #0087F7; margin: 10%') }} # 再用这个指定进行上传的视图函数 在action中指定
{{ dropzone.create(action=url_for("user.upload")) }}
在给个页面上传文件会到指定的函数中去
例子为
@user.route('/upimage/',methods=['GET','POST'])
@login_required
def upload():
if request.method == 'POST':
f = request.files.get('file') # 获取文件对象
# 创建文件夹
basefile = os.path.join(os.path.abspath('static'),'image')
if not os.path.exists(basefile):
os.mkdir(basefile)
# 验证后缀
ext = os.path.splitext(f.filename)[1]
if ext.split('.')[-1] not in UPLOAD_IMAGE_TYPE:
return 'Image only!', 400
# 生成文件名 使用uuid模块
filename = get_uuid(ext)
path = os.path.join(basefile,filename)
f.save(path)
# 将文件路径保存到定义的模型中,这里我定义了一个用户类,一个图片路径类,current_user 是flask_login带的当前用户信息
curent_user_tosave_imagepath(current_user,path)
return render_template('upload.html')
UPLOAD_IMAGE_TYPE 为自定义类型,不使用dropzone的 # 设置的图片上传 限制后缀
UPLOAD_IMAGE_TYPE = ['JPG','GIF','PNG','png','jpg','gif','JPEG','jpeg'] # 如果有其他需求,比如文本,视频,则可以一样定义
UPLOAD_VIDEO_TYPE = ['MP4','mp4','xxx','xxx','xx','xx','xx','x']
curent_user_tosave_imagepath
curent_user_tosave_imagepath 保存图片路径到数据库 def curent_user_tosave_imagepath(current_user,path):
img = Image()
img.img_path = path
img.user_id = current_user.id try:
db.session.add(img)
db.session.commit()
except:
db.session.rollback()
使用flask-dropzone 上传图片文件的更多相关文章
- flask前端上传图片/文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- php上传图片文件常用的几个方法
1. 前台 <form class="add-form" method="post" action="/person/save" en ...
- [Ajax] 使用Ajax异步上传图片文件(非Form表单提交)
通过表单Form提交来上传文件的方式这里就不说了: 下面介绍,通过js中使用ajax异步上传图片文件: 新建一个html页面和一个一般处理程序即可: 涉及思路: //发送2次Ajax请求完成js异步上 ...
- FLask上传文件
目录 Flask上传文件 改进上传 上传进度条 一个更简便的方案 Flask上传文件 文件上传的基本原理实际上很简单,基 本上是: 一个带有 enctype=multipart/form-data 的 ...
- 利用Spring MVC 上传图片文件
本文转自:http://amcucn.iteye.com/blog/264457.感谢作者 近日在工作当中,需要用到上传图片的功能,然而自己平时学习的时候只会使用struts的上传功能,但因为项目并没 ...
- 小白学flask之静态文件
引入css的方式有两种 1 那在flask中,如何处理静态文件? 做法很简单,只要在你的包或模块旁边创建一个名为 static 的文件夹就行了. flask的静态文件是位于应用的 /static 中的
- html+php上传图片文件到服务器
html+php上传图片文件到服务器 一.html代码 <body> <form action="" method="post" enctyp ...
- ajax上传图片文件
这里用的是一个隐藏的iframe,这样可以让form表单提交到这个iframe里面,用户就看不到页面的刷新了 前段时间在解决ajax上传文件时折腾了好一阵.直接用$.post上传文本信息肯定是没有问题 ...
- Flask笔记:文件上传
文件上传 enctype:在HTML中的form表单中form标签默认是`enctype="application/x-www-form-urlencoded"`,在文件上传时需要 ...
随机推荐
- 吴裕雄--天生自然python学习笔记:Matplotlib 基本绘图
使用 Matplotlib 组件绘图时,经常要与 Numpy 组件搭配使用 . 使用 Matplotlib 绘图首先要导入 Matplotlib 组件 , 由于大部分绘图功能是在 matplotlib ...
- mysql索引详细介绍
博客: https://blog.csdn.net/tongdanping/article/details/79878302#%E4%B8%89%E3%80%81%E7%B4%A2%E5%BC%95% ...
- python3下scrapy爬虫(第七卷:编辑器内执行scrapy)
之前我们都是在终端切入到scrapy的路境内执行爬虫的,你要多敲多少行的字节,所以这次我们谈谈如何在编辑器里执行,这个你可以用在爬虫中,当你使用PYTHONWEB开发时尽量不要在编辑器内启动端口服务那 ...
- Redis Client 官方下载地址
下载地址:https://github.com/caoxinyu/RedisClient 界面 归途(LM)
- 每个月执行一次任务,保存90天的mongo日志数据
用mongo 的dump 和 restore实现 shell版 #!/bin/bash mongodump --host -d lewifi -c auditOrigData -q {}} -o ~/ ...
- win10安装revit失败,怎么强力卸载删除注册表并重新安装
一些搞设计的朋友在win10系统下安装revit失败或提示已安装,也有时候想重新安装revit的时候会出现本电脑windows系统已安装revit,你要是不留意直接安装revit,只会安装revit的 ...
- printf 输出浮点数
在测试printf函数输出结果时,写了如下代码: /** * printf:格式化输出函数 * printf函数不会按照格式控制而对数据类型进行转换,不管三七二十一, * 抓到二进制数据就按照格式控制 ...
- Docker私有仓库管理
docker load -i registry.tar.gz docker run -d -p 5000:5000 --restart=always --name registry -v /opt/m ...
- mybatis 添加后获得该新增数据自动生成的 id
// useGeneratedKeys默认值为false,keyProperty的值对应的是User类中的主键字段名 // mybatis 写法如下 <insert id="inser ...
- JavaScript 設計模型 - Iterator
Iterator Pattern是一個很重要也很簡單的Pattern:迭代器!我們可以提供一個統一入口的迭代器,Client只需要知道有哪些方法,或是有哪些Concrete Iterator,並不需要 ...