Python Flask 获取File
在开发Web应用程序时,经常需要用户上传文件到服务器。Python Flask框架提供了方便的方式来处理文件上传和获取已上传的文件。本文将详细介绍如何在Python Flask中获取用户上传的文件,并对其进行处理。
上传文件
在Python Flask中,用户可以通过HTML表单上传文件到服务器。以下是一个简单的示例代码,演示如何在Flask应用程序中创建一个表单,让用户上传文件:
<!DOCTYPE html>
<html>
<head>
<title>文件上传示例</title>
</head>
<body>
<h1>上传文件示例</h1>
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="上传文件">
</form>
</body>
</html>
在Flask应用程序中,需要编写一个路由处理函数来处理文件上传。以下是一个示例代码,演示如何接受用户上传的文件并保存到服务器:
from flask import Flask, request
app = Flask(__name__)
@app.route('/upload', methods=['POST'])
def upload_file():
file = request.files['file']
file.save(f'uploaded_files/{file.filename}')
return '文件上传成功'
if __name__ == '__main__':
app.run()
运行以上代码,用户可以通过访问网址http://127.0.0.1:5000/
来上传文件。上传的文件将保存在uploaded_files
文件夹中。
获取文件
一旦用户上传文件到服务器,我们可以通过Flask框架来获取这些文件并对其进行处理。以下是一个示例代码,演示如何在Flask应用程序中获取已上传的文件:
from flask import Flask, send_file
app = Flask(__name__)
@app.route('/get-file')
def get_file():
return send_file('uploaded_files/geek-docs.com.txt', as_attachment=True)
if __name__ == '__main__':
app.run()
在以上代码中,我们使用send_file
函数来获取文件geek-docs.com.txt
并以附件形式返回给用户。用户可以通过访问网址http://127.0.0.1:5000/get-file
来下载文件。
在实际开发中,我们可以根据需求对获取的文件进行进一步处理,如删除、压缩、解析等操作。
总结
通过以上介绍,我们了解了如何在Python Flask中处理文件上传和获取已上传的文件。Flask框架提供了方便的方法来处理文件操作,开发者可以根据实际需求来进行扩展和定制。