#javascript #python #html #flask #dropzone.js
Вопрос:
Я создаю простое приложение для колбы, которое преобразует загруженное изображение.
Я сделал это с помощью простой формы.
<form class="form-inline " method="POST" action="/lightup" enctype = "multipart/form-data">
<label for="file">Upload image: amp;nbsp; </label>
<input type="file" accept=".jpg, .jpeg, .png" name="file"/>
<button class="btn btn mt-sm-2" id="btn-submit" type="submit">Submit</button>
</form>
А Фласк делает остальную работу.
@app.route('/lightup', methods=['GET','POST'])
def light_up():
if request.method == 'POST':
image=request.files['file']
extension=image.filename.split('.')[-1]
if extension not in ['jpeg','jpg','png']:
flash('Unsupported format :( Supported formats are .jpg, .jpeg and .png')
return render_template('lightup-input.html')
identifier=uuid4()
path = os.path.join(app.config['UPLOAD_FOLDER'],str(identifier) '-' image.filename)
image.save(path)
output=lightUp(path)
os.remove(path)
output = Image.fromarray(output.astype("uint8"))
rawBytes = io.BytesIO()
extension_aux=extension
if extension_aux.lower()=='jpg':
extension_aux='JPEG'
output.save(rawBytes, extension_aux)
rawBytes.seek(0)
img_base64 = base64.b64encode(rawBytes.getvalue()).decode('ascii')
mime = "image/" str(extension)
uri = "data:%s;base64,%s"%(mime, img_base64)
return render_template('lightup-output.html', img=uri, filename=image.filename)
else:
return render_template('lightup-input.html')
Пока это работает, но теперь я хочу создать форму перетаскивания.
<form action="/lightup" method="POST" class="dropzone" enctype = "multipart/form-data">
</form>
<script src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.7.1/min/dropzone.min.js"></script>
При удалении изображения выполняется код python, но окончательный шаблон не отображается. Я думаю, что ответ функции где-то хранится, но я не знаю, как получить доступ к этому ответу и фактически отобразить шаблон.