flpolprojects commited on
Commit
0cbb4fa
·
verified ·
1 Parent(s): ae4402f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -9
app.py CHANGED
@@ -206,6 +206,7 @@ admin_html = """
206
  @app.route('/')
207
  def admin_panel():
208
  try:
 
209
  return render_template_string(admin_html, products=data['products'], orders=data['orders'])
210
  except Exception as e:
211
  logger.error(f"Ошибка в шаблоне: {e}")
@@ -215,6 +216,7 @@ def admin_panel():
215
  def add_product():
216
  try:
217
  if request.method == 'POST':
 
218
  name = request.form['name']
219
  price = float(request.form['price'])
220
  description = request.form['description']
@@ -229,6 +231,7 @@ def add_product():
229
  @app.route('/delete_product/<int:product_id>', methods=['POST'])
230
  def delete_product(product_id):
231
  try:
 
232
  data['products'] = [p for p in data['products'] if p['id'] != product_id]
233
  save_data(data)
234
  return jsonify({'status': 'success'})
@@ -242,18 +245,21 @@ async def on_startup(_):
242
 
243
  def run_flask():
244
  try:
 
245
  app.run(host='0.0.0.0', port=7860)
246
  except Exception as e:
247
  logger.error(f"Ошибка в Flask: {e}")
248
 
249
  if __name__ == '__main__':
250
- # Запускаем бота в главном потоке
251
- asyncio.run(dp.start_polling(bot, on_startup=on_startup))
252
-
253
- # Запускаем Flask в отдельном потоке
254
- flask_thread = threading.Thread(target=run_flask)
255
- flask_thread.daemon = True # Flask будет завершаться при завершении основного потока
256
  flask_thread.start()
257
-
258
- # Ждём завершения основного цикла бота
259
- flask_thread.join()
 
 
 
 
 
 
 
206
  @app.route('/')
207
  def admin_panel():
208
  try:
209
+ logger.info("Rendering admin panel with products and orders")
210
  return render_template_string(admin_html, products=data['products'], orders=data['orders'])
211
  except Exception as e:
212
  logger.error(f"Ошибка в шаблоне: {e}")
 
216
  def add_product():
217
  try:
218
  if request.method == 'POST':
219
+ logger.info("Adding new product")
220
  name = request.form['name']
221
  price = float(request.form['price'])
222
  description = request.form['description']
 
231
  @app.route('/delete_product/<int:product_id>', methods=['POST'])
232
  def delete_product(product_id):
233
  try:
234
+ logger.info(f"Deleting product with id={product_id}")
235
  data['products'] = [p for p in data['products'] if p['id'] != product_id]
236
  save_data(data)
237
  return jsonify({'status': 'success'})
 
245
 
246
  def run_flask():
247
  try:
248
+ logger.info("Starting Flask server on port 7860")
249
  app.run(host='0.0.0.0', port=7860)
250
  except Exception as e:
251
  logger.error(f"Ошибка в Flask: {e}")
252
 
253
  if __name__ == '__main__':
254
+ # Создаём и запускаем поток для Flask
255
+ flask_thread = threading.Thread(target=run_flask, daemon=True)
 
 
 
 
256
  flask_thread.start()
257
+ logger.info("Flask thread started")
258
+
259
+ # Запускаем бота в главном потоке
260
+ try:
261
+ asyncio.run(dp.start_polling(bot, on_startup=on_startup))
262
+ except KeyboardInterrupt:
263
+ logger.info("Stopping bot and Flask")
264
+ finally:
265
+ flask_thread.join() # Ждём завершения потока Flask при завершении программы