From bf8c3fd34a2f4fcfec2c143cbbcf71cd1f2a8a66 Mon Sep 17 00:00:00 2001 From: ElEgEv <112943269+ElEgEv@users.noreply.github.com> Date: Sat, 23 Sep 2023 14:27:08 +0400 Subject: [PATCH] =?UTF-8?q?=D0=A2=D0=B8=D0=BF=D0=BE=20=D1=81=D0=B4=D0=B5?= =?UTF-8?q?=D0=BB=D0=B0=D0=BB,=20=D0=BD=D0=BE=20=D0=B2=D1=8B=D0=B2=D0=BE?= =?UTF-8?q?=D0=B4=20=D0=BD=D1=83=D0=BB=D0=B5=D0=B2=D1=8B=D1=85=20=D0=B7?= =?UTF-8?q?=D0=BD=D0=B0=D1=87=D0=B5=D0=BD=D0=B8=D0=B9=20=D1=8D=D1=82=D0=BE?= =?UTF-8?q?=20=D0=B7=D0=B0=D1=88=D0=BA=D0=B2=D0=B0=D1=80.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LabWork01/FuncLoad.py | 17 +++------- LabWork01/LoadDB.py | 52 +++++++++++++++++++++++++++--- LabWork01/templates/main_page.html | 28 +++++++--------- res/Stores.csv | 2 +- 4 files changed, 64 insertions(+), 35 deletions(-) diff --git a/LabWork01/FuncLoad.py b/LabWork01/FuncLoad.py index ce821d2..10dec80 100644 --- a/LabWork01/FuncLoad.py +++ b/LabWork01/FuncLoad.py @@ -1,16 +1,9 @@ import csv +import numpy as np +import pandas as pd from LabWork01.Shop import Shop -def createList(): - newListShop = [] +def createDataFrame(): + df = pd.read_csv('../res/Stores.csv') - file = open("../res/Stores.csv", "r") - data = list(csv.reader(file, delimiter=",")) - file.close() - - for elem in data: - newListShop.append(Shop(elem[1], elem[2], elem[3], elem[4])) - - newListShop.pop(0) - - return newListShop \ No newline at end of file + return df \ No newline at end of file diff --git a/LabWork01/LoadDB.py b/LabWork01/LoadDB.py index b4dd3e9..e6d4bac 100644 --- a/LabWork01/LoadDB.py +++ b/LabWork01/LoadDB.py @@ -1,22 +1,64 @@ from flask import Flask, redirect, url_for, request, render_template -from LabWork01.FuncLoad import createList +from LabWork01.FuncLoad import createDataFrame app = Flask(__name__) +#сразу загружаем весь док, чтобы потом просто прыгать по нему +listShops = createDataFrame() + +#список типов данных по столбцам +listTypes = listShops.dtypes.to_list() + +#формируем записи о кол-ве пустых ячеек в каждом столбце +countNull = listShops.isnull().sum() + @app.route("/") def home(): - return render_template('main_page.html', firstColumn=1, secondColumn=4) + return render_template('main_page.html', context=[], listTypes=listTypes, countNull=countNull, firstColumn=1, secondColumn=4) @app.route("/showDiapason", methods=['GET','POST']) def numtext(): data = request.args - listShops = createList() + #получаем срез и таблицы по введёным параметрам + 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']): - listShops = listShops[int(data['firstRow']):int(data['secondRow'])+1:1] + 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'])) + + + home() - return render_template('main_page.html', context=listShops, firstColumn=int(data['firstColumn']), secondColumn=int(data['secondColumn'])) if __name__=="__main__": app.run(debug=True) diff --git a/LabWork01/templates/main_page.html b/LabWork01/templates/main_page.html index 2421ed6..a85acc8 100644 --- a/LabWork01/templates/main_page.html +++ b/LabWork01/templates/main_page.html @@ -23,34 +23,28 @@
Площадь магазина, кв. м, double | +Площадь магазина, кв. м, {{ listTypes[1] }} | {% endif %} {% if firstColumn <= 2 and secondColumn >= 2 %} -Кол-во продукции, шт, int | +Кол-во продукции, шт, {{ listTypes[2] }} | {% endif %} {% if firstColumn <= 3 and secondColumn >= 3 %} -Кол-во посетителей в день, чел., int | +Кол-во посетителей в день, чел., {{ listTypes[3] }} | {% endif %} {% if secondColumn == 4 %} -Кол-во проданных товаров, шт., int | +Кол-во проданных товаров, шт., {{ listTypes[4] }} | {% endif %}
---|---|---|---|---|---|---|---|
{{ elem.store_area }} | - {% endif %} - {% if firstColumn <= 2 and secondColumn >= 2 %} -{{ elem.items_available }} | - {% endif %} - {% if firstColumn <= 3 and secondColumn >= 3 %} -{{ elem.daily_customer_count }} | - {% endif %} - {% if secondColumn == 4 %} -{{ elem.store_sales }} | - {% endif %} + {% for elem in context %} +{{ elem[i] }} | + {% endfor %}