Тема: Flask - мапінґ даних
В якості "думок вголос", бо ґпт мене не забанив, але щоб в нього щось запитати, потрібно спочатку самому собі сформулювати думку.
Отже, є Flask апка, "версія 0" якої вже успішно зберігає потрібні дані на сервері в csv.
Є вже декілька готових Python функцій, які приймають ім'я csv файлу і надсилають дані в зовнішнє REST API. Кожна функція призначена для конкретного набору даних, наприклад fnABC надсилає тип даних dataABC у відповідний ендпоїнт REST API epABC.
Так як я на даному етапі і розробник, і користувач в одній морді лиця, то дані в csv (набір колонок, їхні назви) чітко відповідають тому що потрібно для саме цього API ендпоїнту, наприклад файл ABC.csv містить колонки з назвами ABC1, ABC2, ABC3 - точно так як очікується в цьому ендпоїнті
data = {
"ABC1": abc1value,
"ABC2": abc2value,
"ABC3": abc3value
}
Проте користувач без руля що саме очікується в ендпоїнті, отже його набір даних може бути цілком будь-яким. При цьому Flask апка має підказувати користувачеві, які назви колонок очікуються, і пропонувати зробити мапінґ.
Наприклад, користувач надіслав щось таке:
SDLFHJKDSF,SALDF,ABC2,ALSJG
1,6,4,5
2,9,3,5
З цих даних ABC2 мапиться "само", але потребує підтвердження від користувача, а ще дві колонки з решти трьох треба аби користувач вказав, хто з них хто.
Хаотичні думки, але треба з чогось починати.
запитав, але цей робот потребує дуже детальних запитів, тому поки що не дуже допоміг:
from flask import Flask, render_template, request import pandas as pd import csv import json app = Flask(__name__) @app.route('/upload', methods=['POST']) def upload_file(): file = request.files['file'] df = pd.read_csv(file) columns = df.columns.tolist() # Тут ви можете зберегти або передати колонки в інший view аби користувач міг вибрати їх. # Перетворимо список колонок у json для зручності передачі columns_json = json.dumps(columns) # Редірект на сторінку мапінгу з передачею назв колонок return redirect(url_for('map_columns', columns=columns_json)) @app.route('/map', methods=['GET', 'POST']) def map_columns(): if request.method == 'POST': # Код для обробки мапінгу від користувача else: # Відображення форми для користувача columns = json.loads(request.args.get('columns')) return render_template('map_columns.html', columns=columns)