DmitrMakeev commited on
Commit
a138e4b
·
verified ·
1 Parent(s): 6703fe3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -69
app.py CHANGED
@@ -1761,7 +1761,7 @@ def vk_s_get():
1761
 
1762
 
1763
 
1764
- # Маршрут для вывода графика регистраций по utm_source за выбранную дату
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
- try:
1806
- # Получаем даты из параметров запроса
1807
- start_date = request.args.get('start_date')
1808
- end_date = request.args.get('end_date')
1809
-
1810
- # Подключаемся к базе данных
1811
- conn = sqlite3.connect('data_gc.db')
1812
- cursor = conn.cursor()
1813
-
1814
- # SQL-запрос для выборки данных за период
1815
- query = """
1816
- SELECT utm_source, COUNT(*) as count
1817
- FROM contacts
1818
- WHERE date(data_t) BETWEEN ? AND ?
1819
- GROUP BY utm_source
1820
- """
1821
- cursor.execute(query, (start_date, end_date))
1822
- results = cursor.fetchall()
1823
-
1824
- # Формируем данные для столбчатого графика
1825
- labels = [row[0] for row in results] # Значения utm_source
1826
- values = [row[1] for row in results] # Количество регистраций
1827
-
1828
- # SQL-запрос для выборки данных по дням
1829
- daily_query = """
1830
- SELECT utm_source, date(data_t) as day, COUNT(*) as count
1831
- FROM contacts
1832
- WHERE date(data_t) BETWEEN ? AND ?
1833
- GROUP BY utm_source, day
1834
- ORDER BY day
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'])