Skip to content

Commit 1feeb96

Browse files
committed
step 5 done.
1 parent 6e1a609 commit 1feeb96

File tree

3 files changed

+135
-10
lines changed

3 files changed

+135
-10
lines changed

page_analyzer/app.py

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import os
22
from flask import Flask, render_template, request, redirect, flash, url_for
3+
import requests
34
import psycopg2
45
from dotenv import load_dotenv
56
import validators
6-
from datetime import datetime
7+
78

89
load_dotenv()
910
DATABASE_URL = os.getenv('DATABASE_URL')
@@ -88,20 +89,38 @@ def url_detail(url_id):
8889
@app.route('/urls/<int:url_id>/checks', methods=['POST'])
8990
def add_check(url_id):
9091
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+
92104
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))
96111
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}')
100118
finally:
101-
cursor.close()
119+
cur.close()
102120
conn.close()
103121

104-
return redirect(url_for('url_detail', url_id=url_id))
122+
return redirect(url_for('urls'))
123+
105124

106125

107126
if __name__ == '__main__':

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ dependencies = [
1010
"psycopg2-binary>=2.9.10",
1111
"pytest>=8.3.5",
1212
"python-dotenv>=1.1.0",
13+
"requests>=2.32.3",
1314
"ruff>=0.11.7",
1415
"validators>=0.35.0",
1516
]

0 commit comments

Comments
 (0)