我刚刚开始研究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函数没有返回值。
我迷失了为什么在执行第一次返回后没有退出功能的原因。
慕田峪9158850
相关分类