Я хочу сделать изображение из gridfs на моем HTML-Pyge, используя колбу.Я храню изображение в моем mongodb, используя gridfs с одной кнопкой, а также сохраняю ObjectId изображения в сеансе на стороне сервера, используя Flask-Session.Когда я нажимаю на другую кнопку, я получаю правильный ObjectId изображения, сохраненного ранее через мой сеанс, а затем хочу отобразить это изображение из gridfs на моей html-странице, но я не знаю, как это сделать.
Мой app.py
файл:
from flask import Flask, render_template, request, redirect, session
from werkzeug.utils import secure_filename
from pymongo import MongoClient
from gridfs import GridFS
from flask_session import Session
DB = 'test-grid'
COLLECT = 'test-session'
client = MongoClient('mongodb://127.0.0.1:27017')
db = client[DB]
fs = GridFS(db)
app = Flask(__name__)
app.config['MAX_CONTENT_LENGTH'] = 16*1024*1024
app.config['SESSION_TYPE'] = 'mongodb'
app.config['SESSION_MONGODB'] = client
app.config['SESSION_MONGODB_DB'] = DB
app.config['SESSION_MONGODB_COLLECT'] = COLLECT
Session(app)
@app.route("/")
def home():
return render_template("index.html")
@app.route('/upload', methods=['POST'])
def upload_file():
if request.method == 'POST':
f = request.files['file']
filename = secure_filename(f.filename)
f_id = fs.put(f, filename=filename)
session['f_id'] = f_id
session['filename'] = filename
return redirect('/')
@app.route('/display', methods=['GET'])
def display_file():
if request.method == 'GET':
f = fs.get(session['f_id'])
image = f.read()
return render_template("index.html", user_image=image)
if __name__ == "__main__":
app.run(debug=True)
Мой index.html
файл:
<html lang='en'>
<head>
<meta charset='UTF-8'/>
</head>
<body>
<form method="post" action="/upload" enctype="multipart/form-data">
<input type="file" onchange="this.form.submit()" name="file" autocomplete="off" required>
</form>
<form method="get" action="/display">
<input type="submit" value="Display">
</form>
<img src="{{ user_image }}" alt="Show image here"/>
</body>
</html>
Мой requirements.txt
файл:
Flask
Flask-Session
pymongo
Но это не такне работает, и я получаю следующий вывод: Выход
Может кто-нибудь, пожалуйста, помогите мне исправить это?Может быть, с примерами я могу посмотреть.