DmitrMakeev commited on
Commit
c060fa2
·
verified ·
1 Parent(s): 41a3d85

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -10
app.py CHANGED
@@ -1799,7 +1799,7 @@ def registrations_today():
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
  # Получаем даты из параметров запроса
@@ -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
- 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'])
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