Flask 在Python Flask中上传文件
在本文中,我们将介绍如何在Python Flask中实现文件上传功能。文件上传是Web应用中常见的功能之一,它允许用户将本地计算机上的文件上传到服务器端。Flask作为一个轻量级的Web框架,提供了简单易用的接口来实现文件上传功能。
阅读更多:Flask 教程
1. 创建Flask应用
首先,我们需要创建一个基本的Flask应用。可以使用以下代码创建一个简单的Flask应用:
from flask import Flask, request
app = Flask(__name__)
@app.route('/')
def index():
return 'Welcome to Flask Uploading File Example'
if __name__ == '__main__':
app.run(debug=True)
在上面的代码中,我们创建了一个名为app
的Flask对象,并且定义了一个路由规则'/'
,当用户访问根路径时,会返回Welcome to Flask Uploading File Example
。
2. 创建文件上传表单
接下来,我们需要在HTML模板中创建一个文件上传表单,让用户可以选择要上传的文件。可以使用以下代码创建一个简单的文件上传表单:
<!DOCTYPE html>
<html>
<body>
<h2>Flask File Upload Example</h2>
<form action="/upload" method="POST" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="Upload">
</form>
</body>
</html>
在上面的代码中,我们定义了一个POST方法的表单,将上传的文件发送到/upload
路由。
3. 处理文件上传请求
当用户选择了要上传的文件并点击上传按钮后,我们需要在服务器端接收这个文件。可以在Flask应用中定义一个/upload
路由,并使用request.files
属性来获取上传的文件。以下是一个处理文件上传请求的示例代码:
@app.route('/upload', methods=['POST'])
def upload():
file = request.files['file']
file.save(file.filename)
return 'File Uploaded Successfully'
在上面的代码中,我们首先使用request.files
获取上传的文件对象,然后使用save()
方法将文件保存到服务器上。最后,返回一个简单的消息表示文件上传成功。
4. 完整的示例
最后,让我们将上面的两部分代码整合起来,创建一个完整的文件上传示例:
from flask import Flask, request, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('upload.html')
@app.route('/upload', methods=['POST'])
def upload():
file = request.files['file']
file.save(file.filename)
return 'File Uploaded Successfully'
if __name__ == '__main__':
app.run(debug=True)
上面的代码中,我们使用了render_template()
方法来渲染之前创建的HTML模板,用户访问根路径时会显示文件上传表单。当用户选择了要上传的文件后,会发送一个POST请求到/upload
路由,然后文件会被保存到服务器端。上传成功后,会显示一个简单的消息。
总结
本文介绍了如何在Python Flask中实现文件上传功能。通过使用Flask的接口,可以轻松地处理文件上传请求,并将文件保存到服务器上。希望本文对你理解和使用Flask的文件上传功能有所帮助。如有任何问题,请随时留言。