Flask-uploadnotallowed错误-重命名要保存的文件时 - python

我正在尝试在flask中上传一个excel文件,并在保存时给它一个新名称,例如:oldname.xlsxnewname.xlsx

到目前为止,这是我的代码:

from flask import Flask, render_template, send_file, request, redirect, url_for
from flask_uploads import UploadSet, configure_uploads, DOCUMENTS, IMAGES
from remove_characters import get_csv, edit_data, cleanup_data
import re
import os

app = Flask(__name__)

#the name 'datafiles' must match in app.config to DATAFILES
docs = UploadSet('datafiles', DOCUMENTS)
app.config['UPLOADED_DATAFILES_DEST'] = 'static/uploads'
configure_uploads(app, docs)
file_new_name = 'dataexcel'

@app.route("/upload", methods = ['GET', 'POST'])
def upload():
#user_file is the name value in input element
if request.method == 'POST' and 'user_file' in request.files:
    filestorage = request.files['user_file']
    path = "static/uploads/" + filestorage.filename
    filename = docs.save(filestorage, name = file_new_name)


    return redirect(url_for('results', path = path))


return render_template('upload.html')

因此,在save函数中,我将file_new_name传递给名称param,因此它将与该变量名称一起保存。我从烧瓶上传文档中获得了name参数,但出现了“ uploadnotallowed”错误

Flask-uploadnotallowed错误-重命名要保存的文件时 - python

我想知道我是否没有遵循save函数的正确格式,或者我的配置没有正确设置。我是Flask的新手,所以我仍在学习这个很酷的Web框架。提前致谢

参考方案

好的,发现我的错误。变量file_new_name = 'dataexcel'需要具有扩展名,在本例中为.xlsx ext。因此变量应为file_new_name = 'dataexcel.xlsx'

save函数应如下所示-> filename = docs.save(filestorage, None, file_new_name)None是子文件夹,如果要传递子文件夹,只需将其更改为static/upload/dist之类。

Flask-RESTful-返回自定义响应格式 - python

我已经按照以下Flask-RESTful文档定义了自定义响应格式。app = Flask(__name__) api = restful.Api(app) @api.representation('application/octet-stream') def binary(data, code, headers=None): resp =…

WTForms Flask(wtf_flask)验证程序如何为RadioField包括“必需”属性 - python

我基本上在寻找的是WTForms的InputRequired()的RadioField等效验证器。我的意思是,当您尝试提交表单而不在具有InputRequired()验证器的StringField字段中输入任何文本时,用户会在文本字段上方看到提示,提示是"Please fill out this field"。我希望用户必须选择male或…

带后台线程的烧瓶应用程序 - python

我正在创建一个flask应用程序,对于一个请求,我需要运行一些长时间运行的作业,而无需在UI上等待。我将创建一个线程并将消息发送到UI。该线程将计算并更新数据库。但是,UI在提交后会看到一条消息。下面是我的实现,但是它正在运行线程,然后将输出发送到我不喜欢的UI。如何在后台运行此线程?@app.route('/someJob') def …

如何在Flask中生成临时下载? - python

我有一个Flask应用,可让用户下载MP3文件。如何使下载的URL仅在特定时间段内有效?例如,我不想让任何人简单地转到example.com/static/sound.mp3并访问文件,而是希望验证每个请求以防止不必要的带宽。我正在使用Apache服务器,但是如果更容易实现,我可能会考虑切换到另一个服务器。另外,我不想使用Flask来提供文件,因为这会通过迫…

如何使WTForms要求输入RadioButton字段? - python

我正在使用Flask和Flask-WTF创建一个Web表单。表单是动态的,其字段由数据库确定。数据库中的某些问题指定单选按钮字段,而其他问题指定一个单词。我需要要求单选按钮字段中有一个选择。使用wtforms.validators.DataRequired非常适合于字符串字段,但不适用于单选字段。... if question.category == �…