Update app.py
Browse files
app.py
CHANGED
@@ -1799,7 +1799,7 @@ def registrations_today():
|
|
1799 |
def show_registrations():
|
1800 |
return render_template('registrations.html')
|
1801 |
|
1802 |
-
# Маршрут для вывода
|
1803 |
@app.route('/registrations_period', methods=['GET'])
|
1804 |
def registrations_period():
|
1805 |
# Получаем даты из параметров запроса
|
@@ -1820,24 +1820,49 @@ def registrations_period():
|
|
1820 |
cursor.execute(query, (start_date, end_date))
|
1821 |
results = cursor.fetchall()
|
1822 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1823 |
# Закрываем соединение с базой данных
|
1824 |
conn.close()
|
1825 |
|
1826 |
-
# Формируем данные для графика
|
1827 |
-
|
1828 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1829 |
|
1830 |
# Возвращаем данные в формате JSON
|
1831 |
return jsonify({
|
1832 |
'labels': labels,
|
1833 |
-
'values': values
|
|
|
|
|
1834 |
})
|
1835 |
|
1836 |
-
# Маршрут для отображения страницы с графиком за период
|
1837 |
-
@app.route('/show_registrations_period', methods=['GET'])
|
1838 |
-
def show_registrations_period():
|
1839 |
-
return render_template('registrations_period.html')
|
1840 |
-
|
1841 |
|
1842 |
|
1843 |
|
|
|
1799 |
def show_registrations():
|
1800 |
return render_template('registrations.html')
|
1801 |
|
1802 |
+
# Маршрут для вывода данных за период
|
1803 |
@app.route('/registrations_period', methods=['GET'])
|
1804 |
def registrations_period():
|
1805 |
# Получаем даты из параметров запроса
|
|
|
1820 |
cursor.execute(query, (start_date, end_date))
|
1821 |
results = cursor.fetchall()
|
1822 |
|
1823 |
+
# Формируем данные для столбчатого графика
|
1824 |
+
labels = [row[0] for row in results] # Значения utm_source
|
1825 |
+
values = [row[1] for row in results] # Количество регистраций
|
1826 |
+
|
1827 |
+
# SQL-запрос для выборки данных по дням
|
1828 |
+
daily_query = """
|
1829 |
+
SELECT utm_source, date(data_t) as day, COUNT(*) as count
|
1830 |
+
FROM contacts
|
1831 |
+
WHERE date(data_t) BETWEEN ? AND ?
|
1832 |
+
GROUP BY utm_source, day
|
1833 |
+
ORDER BY day
|
1834 |
+
"""
|
1835 |
+
cursor.execute(daily_query, (start_date, end_date))
|
1836 |
+
daily_results = cursor.fetchall()
|
1837 |
+
|
1838 |
# Закрываем соединение с базой данных
|
1839 |
conn.close()
|
1840 |
|
1841 |
+
# Формируем данные для линейного графика
|
1842 |
+
daily_data = {}
|
1843 |
+
for row in daily_results:
|
1844 |
+
utm_source = row[0]
|
1845 |
+
day = row[1]
|
1846 |
+
count = row[2]
|
1847 |
+
|
1848 |
+
if utm_source not in daily_data:
|
1849 |
+
daily_data[utm_source] = {
|
1850 |
+
'label': utm_source,
|
1851 |
+
'data': []
|
1852 |
+
}
|
1853 |
+
daily_data[utm_source]['data'].push({
|
1854 |
+
'x': day,
|
1855 |
+
'y': count
|
1856 |
+
})
|
1857 |
|
1858 |
# Возвращаем данные в формате JSON
|
1859 |
return jsonify({
|
1860 |
'labels': labels,
|
1861 |
+
'values': values,
|
1862 |
+
'dates': list(daily_data.keys()), # Дни периода
|
1863 |
+
'daily_data': list(daily_data.values()) # Данные по дням для каждой метки
|
1864 |
})
|
1865 |
|
|
|
|
|
|
|
|
|
|
|
1866 |
|
1867 |
|
1868 |
|