from flask import Flask, redirect, url_for, request, render_template from LabWork01.AnalysCustomers import analysCustomersDataFrame from LabWork01.AnalysSales import analysSalesDataFrame from LabWork01.AnalysSalesCustomers import analysSalesCustomersDataFrame from LabWork01.DataFrameAnalys import analysItemsDataFrame from LabWork01.FuncLoad import createDataFrame from LabWork01.LabWork3.AddData import addData app = Flask(__name__) #сразу загружаем весь док, чтобы потом просто прыгать по нему listShops = createDataFrame() #список типов данных по столбцам listTypes = listShops.dtypes.to_list() #формируем записи о кол-ве пустых ячеек в каждом столбце countNull = listShops.isnull().sum() @app.route("/") def home(): listShops = addData(createDataFrame()) print(listShops) return render_template('main_page.html', context=[], tableAnalys=[], titles=[''], listTypes=listTypes, countNull=countNull, firstRow=1, secondRow=4, firstColumn=1, secondColumn=4) @app.route("/showDiapason", methods=['GET','POST']) def numtext(): data = request.args #получаем срез и таблицы по введёным параметрам newListShops = listShops.iloc[int(data['firstRow'])-1:int(data['secondRow']), int(data['firstColumn']):int(data['secondColumn'])+1] _range = range(int(data['firstColumn']), int(data['secondColumn'])+1) #список списков для шаблона totalList = [] print(countNull[1]) #формирование 4-х списков для шаблонизатора if 1 in _range: listStoreArea = newListShops['Store_Area'].to_list() totalList.append(listStoreArea) if 2 in _range: listItemsAvailable = newListShops['Items_Available'].to_list() totalList.append(listItemsAvailable) if 3 in _range: listDailyCustomerCount = newListShops['Daily_Customer_Count'].to_list() totalList.append(listDailyCustomerCount) if 4 in _range: listStoreSales = newListShops['Store_Sales'].to_list() totalList.append(listStoreSales) if int(data['firstRow']) and int(data['secondRow']) and int(data['firstColumn']) and int(data['secondColumn']): return render_template('main_page.html', context=totalList, listTypes=listTypes, countNull=countNull, firstColumn=int(data['firstColumn']), secondColumn=int(data['secondColumn']), firstRow=int(data['firstRow']), secondRow=int(data['secondRow'])) return home() #функция для проведения анализа данных @app.route("/analysis", methods=['GET', 'POST']) def analysis(): firstAnalys = analysItemsDataFrame(listShops) secondAnalys = analysCustomersDataFrame(listShops) thirdAnalys = analysSalesDataFrame(listShops) fourthAnalys = analysSalesCustomersDataFrame(listShops) print(firstAnalys) return render_template('main_page.html', context=[], tableAnalysOne=[firstAnalys.to_html()], tableAnalysTwo=[secondAnalys.to_html()], tableAnalysThree=[thirdAnalys.to_html()], tableAnalysFour=[fourthAnalys.to_html()], titles=[''], listTypes=listTypes, countNull=countNull, firstRow=1, secondRow=4, firstColumn=1, secondColumn=4) if __name__=="__main__": app.run(debug=True)