Реализация логики c, которую вы описали, требует работы над интерфейсом. Давайте упростим задачу, предположив, что пользователь вручную вводит целевой каталог загрузки. (На практике было бы более целесообразно иметь всплывающее окно, позволяющее пользователю просматривать каталог в проводнике.)
<form action="/download" method="post">
<input type="text" value="" name="dir">
<input type="submit" value="Download">
</form>
Затем в Flask вы можете указать следующее:
from flask import Flask, request
@app.route('/download', methods=['GET', 'POST'])
def save_doc():
if request.method=='POST':
download_dir = request.form['dir'] # Access user input from backend
filename = 'test.docx'
filepath = os.path.join(download_dir, filename)
document.save(filepath)
return 'Download complete'
else:
pass # Whatever implementation you want for 'GET' method
Это неполный код, который я написал без знания структуры ваш проект, и поэтому может не работать, если он просто скопирован и вставлен в ваш исходный код. Реализация также довольно проста c, поэтому рассмотрите ее как базовую модель, которая поможет вам начать работу с системой интерактивного диалога пользователей.
Я был бы рад ответить на любые ваши вопросы.