首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >flask dropzone加csrf(flask 74)

flask dropzone加csrf(flask 74)

作者头像
用户5760343
发布2019-08-20 16:24:55
5090
发布2019-08-20 16:24:55
举报
文章被收录于专栏:sktjsktjsktj

import os

from flask import Flask, render_template, request from flask_dropzone import Dropzone from flask_wtf.csrf import CSRFProtect, CSRFError

basedir = os.path.abspath(os.path.dirname(file))

app = Flask(name)

app.config.update( SECRET_KEY='dev key', # the secret key used to generate CSRF token UPLOADED_PATH=os.path.join(basedir, 'uploads'), # Flask-Dropzone config: DROPZONE_ALLOWED_FILE_TYPE='image', DROPZONE_MAX_FILE_SIZE=3, DROPZONE_MAX_FILES=30, DROPZONE_ENABLE_CSRF=True # enable CSRF protection )

dropzone = Dropzone(app) csrf = CSRFProtect(app) # initialize CSRFProtect

@app.route('/', methods=['POST', 'GET']) def upload(): if request.method == 'POST': f = request.files.get('file') f.save(os.path.join(app.config['UPLOADED_PATH'], f.filename)) return render_template('index.html')

handle CSRF error

@app.errorhandler(CSRFError) def csrf_error(e): return e.description, 400

if name == 'main': app.run(debug=True)

index.html

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Flask-Dropzone Demo: CSRF</title> {{ dropzone.load_css() }} {{ dropzone.style('border: 2px dashed #0087F7; margin: 10%; min-height: 400px;') }} </head> <body> {{ dropzone.create('upload') }} {{ dropzone.load_js() }} {{ dropzone.config() }} </body> </html>

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.08.13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • handle CSRF error
  • index.html
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档