Вы можете создавать файлы на сервере и возвращать их для загрузки, используя объект Response
.
В качестве примера, возвращение текстового файла (взятого из реального веб-приложения):
@app.route('/account/security/2fa_backup_codes.txt')
@login_required
def backup_codes():
codes = g.user.tfa_backup.replace(',', '\r\n')
generator = (cell for row in codes for cell in row)
return Response(generator, mimetype='text/plain',
headers={'Content-Disposition':
'attachment;filename=2fa_backup_codes.txt'})