flask上传文件到mangodb的前后端写法
时间: 2023-05-24 18:07:16 浏览: 113
详解Flask前后端分离项目案例
前端代码:
```html
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file" id="file">
<button type="submit">Upload</button>
</form>
```
后端代码:
```python
from flask import Flask, request
from pymongo import MongoClient
from bson.binary import Binary
import gridfs
app = Flask(__name__)
client = MongoClient("mongodb://localhost:27017/")
db = client["file_storage"]
fs = gridfs.GridFS(db)
@app.route('/upload', methods=['POST'])
def upload_file():
file = request.files['file']
file_id = fs.put(file.read(), filename=file.filename, content_type=file.content_type)
return f"File uploaded with id: {file_id}"
if __name__ == '__main__':
app.run(debug=True)
```
上述代码使用了Flask框架和MongoDB数据库。前端通过表单上传文件时,后端接收文件并将其存储到MongoDB中。在这里,我们使用了gridfs模块来存储文件。
文件存储过程如下:
1. 从上传的请求中获取文件对象。
2. 将文件转化为Binary格式。
3. 使用gridfs模块中的`put()`方法将文件存储到MongoDB中,并返回文件的id。
注:需要安装pymongo和gridfs模块。
阅读全文