|
1 | 1 | import os |
2 | 2 | from flask import Flask, render_template, request, redirect, flash, url_for |
| 3 | +import requests |
3 | 4 | import psycopg2 |
4 | 5 | from dotenv import load_dotenv |
5 | 6 | import validators |
6 | | -from datetime import datetime |
| 7 | + |
7 | 8 |
|
8 | 9 | load_dotenv() |
9 | 10 | DATABASE_URL = os.getenv('DATABASE_URL') |
@@ -88,20 +89,38 @@ def url_detail(url_id): |
88 | 89 | @app.route('/urls/<int:url_id>/checks', methods=['POST']) |
89 | 90 | def add_check(url_id): |
90 | 91 | conn = get_db_connection() |
91 | | - cursor = conn.cursor() |
| 92 | + cur = conn.cursor() |
| 93 | + |
| 94 | + # Получаем URL из базы данных |
| 95 | + cur.execute('SELECT name FROM urls WHERE id = %s', (url_id,)) |
| 96 | + url = cur.fetchone() |
| 97 | + |
| 98 | + if url is None: |
| 99 | + flash('URL не найден.') |
| 100 | + return redirect(url_for('urls')) |
| 101 | + |
| 102 | + url_name = url[0] |
| 103 | + |
92 | 104 | try: |
93 | | - # Здесь вы можете добавить логику для получения status_code, h1, title, description |
94 | | - # На данный момент заполняем только url_id и created_at |
95 | | - cursor.execute('INSERT INTO url_checks (url_id, created_at) VALUES (%s, %s)', (url_id, datetime.now())) |
| 105 | + response = requests.get(url_name) |
| 106 | + response.raise_for_status() # Проверка на ошибки HTTP |
| 107 | + status_code = response.status_code |
| 108 | + |
| 109 | + # Записываем код статуса в базу данных |
| 110 | + cur.execute('INSERT INTO url_checks (url_id, status_code) VALUES (%s, %s)', (url_id, status_code)) |
96 | 111 | conn.commit() |
97 | | - flash('Проверка успешно добавлена!', 'success') |
98 | | - except Exception as e: |
99 | | - flash('Ошибка при добавлении проверки: ' + str(e), 'error') |
| 112 | + |
| 113 | + flash(f'Проверка успешна! Код ответа: {status_code}') |
| 114 | + except requests.exceptions.RequestException as e: |
| 115 | + flash('Произошла ошибка при проверке.') |
| 116 | + # Логируем ошибку, если нужно |
| 117 | + print(f'Ошибка: {e}') |
100 | 118 | finally: |
101 | | - cursor.close() |
| 119 | + cur.close() |
102 | 120 | conn.close() |
103 | 121 |
|
104 | | - return redirect(url_for('url_detail', url_id=url_id)) |
| 122 | + return redirect(url_for('urls')) |
| 123 | + |
105 | 124 |
|
106 | 125 |
|
107 | 126 | if __name__ == '__main__': |
|
0 commit comments