Для моего проекта я использую Flask на стороне сервера и Angular на стороне клиента.Когда я вызываю API-интерфейс колбы для загрузки файла CSV, иногда файл успешно загружается, а иногда выдает keyError в имени файла.Я постоянно сталкиваюсь с этой проблемой и пробовал различные методы для обработки заголовка при вызове API, но не повезло в этом.Я связался с сообществом Flask для того же, но они говорят, что это какая-то ошибка на стороне клиента.Я также связался с сообществом angular для того же, но они сказали, что нет Это связано с тем, что данные формы отправляются со стороны клиента (angular) на сторону сервера и не передаются правильно.
Этомой код фляги
new_dataset_flag = 0
file = request.files['trainingData']
Это мой угловой код: -
export class TrainingComponent implements OnInit {
@ViewChild('trainingData') fileInput:ElementRef;
И вот как я называю бэкэнд API: -
const fileBrowser = this.fileInput.nativeElement;
let temp = [];
if (fileBrowser.files && fileBrowser.files[0]) {
this.loading = true;
const formData = new FormData();
formData.append('trainingData', fileBrowser.files[0]);
this.httpClient.post('http://127.0.0.1:5001/uploadXYZ/formData'
Этообратная связь, которую я получаю в Backend
Traceback (most recent call last):
File "C:\Users\deepak.saini\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 2309, in __call__
return self.wsgi_app(environ, start_response)
File "C:\Users\deepak.saini\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 2295, in wsgi_app
response = self.handle_exception(e)
File "C:\Users\deepak.saini\AppData\Local\Programs\Python\Python36\lib\site-packages\flask_cors\extension.py", line 161, in wrapped_function
return cors_after_request(app.make_response(f(*args, **kwargs)))
File "C:\Users\deepak.saini\AppData\Local\Programs\Python\Python36\lib\site-packages\flask_restful\__init__.py", line 273, in error_router
return original_handler(e)
File "C:\Users\deepak.saini\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 1741, in handle_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\deepak.saini\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\_compat.py", line 35, in reraise
raise value
File "C:\Users\deepak.saini\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 2292, in wsgi_app
response = self.full_dispatch_request()
File "C:\Users\deepak.saini\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 1815, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Users\deepak.saini\AppData\Local\Programs\Python\Python36\lib\site-packages\flask_cors\extension.py", line 161, in wrapped_function
return cors_after_request(app.make_response(f(*args, **kwargs)))
File "C:\Users\deepak.saini\AppData\Local\Programs\Python\Python36\lib\site-packages\flask_restful\__init__.py", line 273, in error_router
return original_handler(e)
File "C:\Users\deepak.saini\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 1718, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\Users\deepak.saini\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\_compat.py", line 35, in reraise
raise value
File "C:\Users\deepak.saini\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 1813, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Users\deepak.saini\AppData\Local\Programs\Python\Python36\lib\site-packages\flask\app.py", line 1799, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "D:\6-feb\intent-python\src\intent\incident\incidenttraining.py", line 20, in db_insert_training_tickets
return IncidentTraining.db_insert_training_tickets(customer_id, dataset_name, team_name)
File "D:\6-feb\intent-python\src\intent\incident\incidenttraining.py", line 41, in db_insert_training_tickets
file = request.files['trainingData']
File "C:\Users\deepak.saini\AppData\Local\Programs\Python\Python36\lib\site-packages\werkzeug\datastructures.py", line 431, in __getitem__
raise exceptions.BadRequestKeyError(key)
werkzeug.exceptions.HTTPException.wrap.<locals>.newcls: 400 Bad Request: KeyError: 'trainingData'
Error in atexit._run_exitfuncs: