Skip to content

Commit a5c17ea

Browse files
committed
fix routing
1 parent b003f20 commit a5c17ea

File tree

2 files changed

+21
-91
lines changed

2 files changed

+21
-91
lines changed

page_analyzer/app.py

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,24 +25,39 @@ def index():
2525
if request.method == 'POST':
2626
url = request.form['url']
2727
if not validators.url(url) or len(url) > 255:
28-
flash('Неверный URL-адрес!', 'error')
28+
flash('Некорректный URL', 'error')
2929
return redirect(url_for('index'))
3030

3131
conn = get_db_connection()
3232
cur = conn.cursor()
3333
try:
34+
# Проверяем, существует ли уже этот URL
35+
cur.execute('SELECT id FROM urls WHERE name = %s', (url,))
36+
existing_url = cur.fetchone()
37+
38+
if existing_url:
39+
# Если URL уже существует, перенаправляем на его детали
40+
url_id = existing_url[0]
41+
flash('Страница уже существует', 'error')
42+
return redirect(url_for('url_detail', url_id=url_id))
43+
44+
# Если URL не существует, добавляем его
3445
cur.execute('INSERT INTO urls (name) VALUES (%s)', (url,))
3546
conn.commit()
3647
flash('Страница успешно добавлена', 'success')
37-
except psycopg2.IntegrityError:
48+
49+
# Получаем ID добавленного URL для перенаправления
50+
cur.execute('SELECT id FROM urls WHERE name = %s', (url,))
51+
url_id = cur.fetchone()[0]
52+
53+
return redirect(url_for('url_detail', url_id=url_id))
54+
except Exception as e:
3855
conn.rollback()
39-
flash('Этот URL уже существует!', 'error')
56+
flash(f'Произошла ошибка: {str(e)}', 'error')
4057
finally:
4158
cur.close()
4259
conn.close()
4360

44-
return redirect(url_for('index'))
45-
4661
return render_template('index.html')
4762

4863

0 commit comments

Comments
 (0)