Загрузка данных


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)