Spaces:
Paused
Paused
Update app.py
Browse files
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 |
-
|
| 252 |
-
|
| 253 |
-
# Запускаем Flask в отдельном потоке
|
| 254 |
-
flask_thread = threading.Thread(target=run_flask)
|
| 255 |
-
flask_thread.daemon = True # Flask будет завершаться при завершении основного потока
|
| 256 |
flask_thread.start()
|
| 257 |
-
|
| 258 |
-
|
| 259 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 при завершении программы
|