为了账号安全,请及时绑定邮箱和手机立即绑定

Flask了解文件上传示例中的多次退货

Flask了解文件上传示例中的多次退货

白衣非少年 2021-05-07 14:12:15
我刚刚开始研究flask,然后开始处理文件上传,但是有些事情我无法解决。在我基本上改编的文档示例中,我们有@app.route('/', methods=['GET', 'POST'])def upload_file():    if request.method == 'POST':        # check if the post request has the file part        if 'file' not in request.files:            flash('No file part')            return redirect(request.url)        file = request.files['file']        # if user does not select file, browser also        # submit an empty part without filename        if file.filename == '':            flash('No selected file')            return redirect(request.url)        if file and allowed_file(file.filename):            filename = secure_filename(file.filename)            file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))            return redirect(url_for('uploaded_file',                                    filename=filename))    return '''    <!doctype html>    <title>Upload new File</title>    <h1>Upload new File</h1>    <form method=post enctype=multipart/form-data>      <input type=file name=file>      <input type=submit value=Upload>    </form>    '''我不了解语法,对我来说似乎有两个都执行的return语句。例如,如果文件被正确选择,是允许的文件,该文件被保存,用户获取其浏览器的URL重定向:/文件名= selected_file由return redirect(url_for('uploaded_file',filename=filename))再后来还有另外一个基本上呈现HTML来回报向用户展示。从我的玩法来看,似乎两个语句都已执行,而省略最后一个语句将导致python抱怨view函数没有返回值。我迷失了为什么在执行第一次返回后没有退出功能的原因。
查看完整描述

1 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

看起来两个返回都一个接一个地执行,但这是因为upload_file每次上载都被调用两次-一次使用GET来呈现上载表单,一次使用POST来执行文件上载之后发生的一切。

与其他Python程序一样,该函数的确会在第一次返回后退出。


查看完整回答
反对 回复 2021-05-25
  • 1 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信