Aleksmorshen commited on
Commit
b4fd17f
·
verified ·
1 Parent(s): eb6f5b8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +13 -21
app.py CHANGED
@@ -2,41 +2,37 @@ from flask import Flask, request, redirect
2
  import json
3
  import os
4
 
5
- app = Flask(__name__) # Исправлено: __name__
6
  DB_FILE = 'data.json'
7
 
8
- # Функция для создания нового JSON-файла
9
  def initialize_db():
10
  try:
11
  with open(DB_FILE, 'w') as f:
12
- json.dump([], f) # Создаём пустой массив в файле
13
- print(f"Файл {DB_FILE} успешно создан.") # Отладочное сообщение
14
  except Exception as e:
15
  print(f"Ошибка при создании файла {DB_FILE}: {e}")
16
 
17
- # Функция для загрузки данных из файла
18
  def load_products():
19
- if not os.path.exists(DB_FILE): # Если файл не существует, создаём его
20
  initialize_db()
21
  try:
22
  with open(DB_FILE, 'r') as f:
23
  products = json.load(f)
24
- print(f"Данные успешно загружены из {DB_FILE}: {products}") # Отладочное сообщение
25
  return products
26
  except (json.JSONDecodeError, Exception) as e:
27
  print(f"Ошибка при чтении файла {DB_FILE}: {e}")
28
  return []
29
 
30
- # Функция для сохранения данных в файл
31
  def save_products(products):
32
  try:
33
  with open(DB_FILE, 'w') as f:
34
- json.dump(products, f, indent=4) # Добавлено форматирование для удобства чтения
35
- print(f"Данные успешно сохранены в {DB_FILE}: {products}") # Отладочное сообщение
36
  except Exception as e:
37
  print(f"Ошибка при записи в файл {DB_FILE}: {e}")
38
 
39
- # Вспомогательная функция для обёртки HTML-контента
40
  def html_wrapper(content):
41
  return f'''
42
  <!DOCTYPE html>
@@ -66,11 +62,10 @@ a {{ margin-right: 15px; text-decoration: none; color: #333; }}
66
  </html>
67
  '''
68
 
69
- # Маршрут для отображения каталога товаров
70
  @app.route('/')
71
  def catalog():
72
  products = load_products()
73
- if not products: # Если список товаров пуст
74
  return html_wrapper('<div class="header">Каталог товаров пуст</div>')
75
  products_html = ''.join([
76
  f'''<div class="product">
@@ -86,24 +81,24 @@ def catalog():
86
  <div class="products">{products_html}</div>
87
  ''')
88
 
89
- # Маршрут для админ-панели (добавление товаров)
90
  @app.route('/admin', methods=['GET', 'POST'])
91
  def admin():
92
  if request.method == 'POST':
93
  products = load_products()
94
 
95
- # Добавляем новый товар из формы
96
  try:
97
  new_product = {
98
  'name': request.form['name'],
99
  'description': request.form['description'],
100
- 'price': float(request.form['price']), # Преобразуем цену в число
101
  'image': request.form['image']
102
  }
103
  products.append(new_product)
104
  save_products(products)
 
105
  return redirect('/admin')
106
  except ValueError as e:
 
107
  return html_wrapper(f'<div class="header">Ошибка: {e}</div>')
108
 
109
  return html_wrapper('''
@@ -117,11 +112,8 @@ def admin():
117
  </form>
118
  ''')
119
 
120
- # Точка входа в приложение
121
- if __name__ == '__main__': # Исправлено: __name__
122
-
123
- # Проверяем наличие файла при запуске и создаём его при необходимости
124
  if not os.path.exists(DB_FILE):
125
  initialize_db()
126
 
127
- app.run(host='0.0.0.0', port=7860, debug=True) # Включаем debug-режим
 
2
  import json
3
  import os
4
 
5
+ app = Flask(__name__)
6
  DB_FILE = 'data.json'
7
 
 
8
  def initialize_db():
9
  try:
10
  with open(DB_FILE, 'w') as f:
11
+ json.dump([], f)
12
+ print(f"Файл {DB_FILE} успешно создан.")
13
  except Exception as e:
14
  print(f"Ошибка при создании файла {DB_FILE}: {e}")
15
 
 
16
  def load_products():
17
+ if not os.path.exists(DB_FILE):
18
  initialize_db()
19
  try:
20
  with open(DB_FILE, 'r') as f:
21
  products = json.load(f)
22
+ print(f"Данные успешно загружены из {DB_FILE}: {products}")
23
  return products
24
  except (json.JSONDecodeError, Exception) as e:
25
  print(f"Ошибка при чтении файла {DB_FILE}: {e}")
26
  return []
27
 
 
28
  def save_products(products):
29
  try:
30
  with open(DB_FILE, 'w') as f:
31
+ json.dump(products, f, indent=4)
32
+ print(f"Данные успешно сохранены в {DB_FILE}: {products}")
33
  except Exception as e:
34
  print(f"Ошибка при записи в файл {DB_FILE}: {e}")
35
 
 
36
  def html_wrapper(content):
37
  return f'''
38
  <!DOCTYPE html>
 
62
  </html>
63
  '''
64
 
 
65
  @app.route('/')
66
  def catalog():
67
  products = load_products()
68
+ if not products:
69
  return html_wrapper('<div class="header">Каталог товаров пуст</div>')
70
  products_html = ''.join([
71
  f'''<div class="product">
 
81
  <div class="products">{products_html}</div>
82
  ''')
83
 
 
84
  @app.route('/admin', methods=['GET', 'POST'])
85
  def admin():
86
  if request.method == 'POST':
87
  products = load_products()
88
 
 
89
  try:
90
  new_product = {
91
  'name': request.form['name'],
92
  'description': request.form['description'],
93
+ 'price': float(request.form['price']),
94
  'image': request.form['image']
95
  }
96
  products.append(new_product)
97
  save_products(products)
98
+ print(f"Добавлен новый товар: {new_product}") # Отладочное сообщение
99
  return redirect('/admin')
100
  except ValueError as e:
101
+ print(f"Ошибка при добавлении товара: {e}") # Отладочное сообщение
102
  return html_wrapper(f'<div class="header">Ошибка: {e}</div>')
103
 
104
  return html_wrapper('''
 
112
  </form>
113
  ''')
114
 
115
+ if __name__ == '__main__':
 
 
 
116
  if not os.path.exists(DB_FILE):
117
  initialize_db()
118
 
119
+ app.run(host='0.0.0.0', port=7860, debug=True)