from flask import Flask, render_template, request, redirect, session, url_for
from db import get_connection
app = Flask(__name__)
app.secret_key = "super_secret_key"
# Главная
@app.route("/")
def index():
return render_template("index.html")
# О сайте
@app.route("/about")
def about():
return render_template("about.html")
# Контакты
@app.route("/contacts")
def contacts():
return render_template("contacts.html")
# Услуги
@app.route("/services")
def services():
return render_template("services.html")
# Регистрация
@app.route("/register", methods=["GET", "POST"])
def register():
error = ""
if request.method == "POST":
email = request.form.get("email")
password = request.form.get("password")
confirm_password = request.form.get("confirm_password")
phone = request.form.get("phone")
# Проверка пустых полей
if not email or not password or not confirm_password or not phone:
error = "Заполните все поля"
# Проверка паролей
elif password != confirm_password:
error = "Пароли не совпадают"
else:
conn = get_connection()
cur = conn.cursor()
# Проверка email
cur.execute("SELECT * FROM users WHERE email = %s", (email,))
existing_user = cur.fetchone()
if existing_user:
error = "Email уже существует"
else:
cur.execute(
"INSERT INTO users (email, password, phone) VALUES (%s, %s, %s)",
(email, password, phone)
)
conn.commit()
cur.close()
conn.close()
return redirect("/login")
cur.close()
conn.close()
return render_template("register.html", error=error)
# Логин
@app.route("/login", methods=["GET", "POST"])
def login():
error = ""
if request.method == "POST":
email = request.form.get("email")
password = request.form.get("password")
conn = get_connection()
cur = conn.cursor()
cur.execute(
"SELECT * FROM users WHERE email = %s AND password = %s",
(email, password)
)
user = cur.fetchone()
cur.close()
conn.close()
if user:
session["user_email"] = user[1]
return redirect("/profile")
else:
error = "Неверный логин или пароль"
return render_template("login.html", error=error)
# Профиль
@app.route("/profile")
def profile():
if "user_email" not in session:
return redirect("/login")
conn = get_connection()
cur = conn.cursor()
cur.execute(
"SELECT email, phone FROM users WHERE email = %s",
(session["user_email"],)
)
user = cur.fetchone()
cur.close()
conn.close()
return render_template(
"profile.html",
email=user[0],
phone=user[1]
)
# Выход
@app.route("/logout")
def logout():
session.clear()
return redirect("/")
if __name__ == "__main__":
app.run(debug=True)