Update app.py
Browse files
app.py
CHANGED
@@ -1761,7 +1761,7 @@ def vk_s_get():
|
|
1761 |
|
1762 |
|
1763 |
|
1764 |
-
|
1765 |
@app.route('/registrations_today', methods=['GET'])
|
1766 |
def registrations_today():
|
1767 |
# Получаем дату из параметра запроса
|
@@ -1799,76 +1799,39 @@ 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 |
-
|
1806 |
-
|
1807 |
-
|
1808 |
-
|
1809 |
-
|
1810 |
-
|
1811 |
-
|
1812 |
-
|
1813 |
-
|
1814 |
-
|
1815 |
-
|
1816 |
-
|
1817 |
-
|
1818 |
-
|
1819 |
-
|
1820 |
-
|
1821 |
-
|
1822 |
-
|
1823 |
-
|
1824 |
-
|
1825 |
-
|
1826 |
-
|
1827 |
-
|
1828 |
-
|
1829 |
-
|
1830 |
-
|
1831 |
-
|
1832 |
-
|
1833 |
-
|
1834 |
-
|
1835 |
-
"""
|
1836 |
-
cursor.execute(daily_query, (start_date, end_date))
|
1837 |
-
daily_results = cursor.fetchall()
|
1838 |
-
|
1839 |
-
# Закрываем соединение с базой данных
|
1840 |
-
conn.close()
|
1841 |
-
|
1842 |
-
# Формируем данные для линейного графика
|
1843 |
-
daily_data = {}
|
1844 |
-
for row in daily_results:
|
1845 |
-
utm_source = row[0]
|
1846 |
-
day = row[1]
|
1847 |
-
count = row[2]
|
1848 |
-
|
1849 |
-
if utm_source not in daily_data:
|
1850 |
-
daily_data[utm_source] = {
|
1851 |
-
'label': utm_source,
|
1852 |
-
'data': []
|
1853 |
-
}
|
1854 |
-
daily_data[utm_source]['data'].append({
|
1855 |
-
'x': day,
|
1856 |
-
'y': count
|
1857 |
-
})
|
1858 |
-
|
1859 |
-
# Возвращаем данные в формате JSON
|
1860 |
-
return jsonify({
|
1861 |
-
'labels': labels,
|
1862 |
-
'values': values,
|
1863 |
-
'dates': list(daily_data.keys()), # Дни периода
|
1864 |
-
'daily_data': list(daily_data.values()) # Данные по дням для каждой метки
|
1865 |
-
})
|
1866 |
-
except Exception as e:
|
1867 |
-
# Логируем ошибку и возвращаем сообщение об ошибке
|
1868 |
-
print(f"Ошибка: {e}")
|
1869 |
-
return jsonify({
|
1870 |
-
'error': 'Произошла ошибка на сервере. Проверьте логи для подробностей.'
|
1871 |
-
}), 500
|
1872 |
|
1873 |
# Маршрут для отображения страницы с графиком за период
|
1874 |
@app.route('/show_registrations_period', methods=['GET'])
|
|
|
1761 |
|
1762 |
|
1763 |
|
1764 |
+
## Маршрут для вывода графика регистраций по utm_source за выбранную дату
|
1765 |
@app.route('/registrations_today', methods=['GET'])
|
1766 |
def registrations_today():
|
1767 |
# Получаем дату из параметра запроса
|
|
|
1799 |
def show_registrations():
|
1800 |
return render_template('registrations.html')
|
1801 |
|
1802 |
+
# Маршрут для вывода графика регистраций по utm_source за период
|
1803 |
@app.route('/registrations_period', methods=['GET'])
|
1804 |
def registrations_period():
|
1805 |
+
# Получаем даты из параметров запроса
|
1806 |
+
start_date = request.args.get('start_date')
|
1807 |
+
end_date = request.args.get('end_date')
|
1808 |
+
|
1809 |
+
# Подключаемся к базе данных
|
1810 |
+
conn = sqlite3.connect('data_gc.db')
|
1811 |
+
cursor = conn.cursor()
|
1812 |
+
|
1813 |
+
# SQL-запрос для выборки данных за период
|
1814 |
+
query = """
|
1815 |
+
SELECT utm_source, COUNT(*) as count
|
1816 |
+
FROM contacts
|
1817 |
+
WHERE date(data_t) BETWEEN ? AND ?
|
1818 |
+
GROUP BY utm_source
|
1819 |
+
"""
|
1820 |
+
cursor.execute(query, (start_date, end_date))
|
1821 |
+
results = cursor.fetchall()
|
1822 |
+
|
1823 |
+
# Закрываем соединение с базой данных
|
1824 |
+
conn.close()
|
1825 |
+
|
1826 |
+
# Формируем данные для графика
|
1827 |
+
labels = [row[0] for row in results] # Значения utm_source
|
1828 |
+
values = [row[1] for row in results] # Количество регистраций
|
1829 |
+
|
1830 |
+
# Возвращаем данные в формате JSON
|
1831 |
+
return jsonify({
|
1832 |
+
'labels': labels,
|
1833 |
+
'values': values
|
1834 |
+
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1835 |
|
1836 |
# Маршрут для отображения страницы с графиком за период
|
1837 |
@app.route('/show_registrations_period', methods=['GET'])
|