我在烧瓶中实现了简单的应用程序。我也可以获取数据并处理它,但是如何获得随机创建的文件夹。在此应用程序中,我尝试将一些数据输入到文本区域。单击“导出甲板”按钮后,数据将发布到烧瓶中。我也可以获取数据并生成牌组,但无法发送生成的牌组文件或重定向到随机文件夹。我收到以下错误。raise TypeError(TypeError: The view function did not return a valid response. The function either returned None or ended without a return statement.)那么,我该如何实现呢?重定向到新的随机生成的文件夹或将生成的文件作为下载链接发送。谢谢app.pyfrom flask import Flask, render_template, request, redirect, url_for, flash, send_file, send_from_directoryimport image_occ_deck_exportimport random, osapp = Flask(__name__)app.config["CACHE_TYPE"] = "null"@app.route("/", methods=["GET","POST"])def home(): if request.method == "POST": print(request.form['notes']) notes = request.form['notes'] # random folder data = request.form['notes'] print(data) random_f = random.randrange(1 << 30, 1 << 31) create_random_folder(random_f, data) else: return render_template("index.html") def create_random_folder(random_f, data): directory = str(random_f) parent_dir = "static/uploads/" path = os.path.join(parent_dir, directory) if not os.path.exists(path): os.mkdir(path) random_file = directory + ".txt" random_deck_name = directory + ".apkg" file_loc = path + "/" + random_file deck_loc = path + "/" + random_deck_name with open(file_loc, 'w') as f: f.write(str(data)) image_occ_deck_export.exportDeck(file_loc, deck_loc) return redirect(url_for('uploaded', path=path))@app.route('/uploaded/<path>', methods=['GET'])def uploaded(): return render_template("upload.html")if __name__ == "__main__": app.run(debug=False)
1 回答
繁花不似锦
TA贡献1851条经验 获得超4个赞
create_random_folder()
返回重定向,但是当您从home()
请求处理程序调用它时,您不会对返回值执行任何操作,并且不会在处理程序的该代码分支中返回响应home()
。看来您打算从处理程序返回该重定向,home()
如下所示:
return create_random_folder(random_f, data)
请记住,当您从函数返回值时,您将该值返回给调用代码,而不是浏览器。如果您从请求处理程序调用函数并收到返回值,则该值不会自动发送回浏览器;您需要从请求处理程序返回它。
添加回答
举报
0/150
提交
取消