Загрузите, обработайте, загрузите, а затем удалите файл с помощью Python Flask [duplicate]

Вот несколько способов доступа к родительскому контексту внутри дочернего контекста - Вы можете использовать функцию bind(). Храните ссылку на контекст / внутри внутри другой переменной (см. Пример ниже). Используйте функции ES6 Arrow. Alter Code / function design / architecture - для этого вы должны иметь команду над шаблонами проектирования в javascript.

1. Используйте функцию bind()

function MyConstructor(data, transport) { this.data = data; transport.on('data', ( function () { alert(this.data); }).bind(this) ); } // Mock transport object var transport = { on: function(event, callback) { setTimeout(callback, 1000); } }; // called as var obj = new MyConstructor('foo', transport);

Если вы используете underscore.js - http://underscorejs.org/#bind

transport.on('data', _.bind(function () { alert(this.data); }, this));

2 Сохраните ссылку на контекст / этот внутри другой переменной

function MyConstructor(data, transport) { var self = this; this.data = data; transport.on('data', function() { alert(self.data); }); }

3 Функция стрелки

function MyConstructor(data, transport) { this.data = data; transport.on('data', () => { alert(this.data); }); }
6
задан davidism 1 December 2015 в 01:25
поделиться

1 ответ

Вы не можете вернуть несколько ответов на один запрос. Вместо этого создавайте и храните файлы где-нибудь, а обслуживают их другим маршрутом. Верните обработанный шаблон с URL-адресом для маршрута, который будет обслуживать файл.

@app.route('/database')
def database():
    # generate some file name
    # save the file in the `database_reports` folder used below
    return render_template('database.html', filename=stored_file_name)

@app.route('/database_download/<filename>')
def database_download(filename):
    return send_from_directory('database_reports', filename)

В шаблоне используйте url_for для создания URL-адреса загрузки.

<a href="{{ url_for('database_download', filename=filename) }}">Download</a>
6
ответ дан Community 22 August 2018 в 09:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: