Как изучить Java-скрипт и создавать с его помощью базовые проекты, используя собственный мозг и допуская минимальное количество ошибок. Я покажу это вам сегодня здесь. Спасибо. Как выучить Java-скрипт и как создавать с его помощью базовые проекты, используя собственный мозг и допуская минимальное количество ошибок. Я покажу это вам сегодня здесь. Спасибо
Как выучить Java-скрипт и как создавать с его помощью базовые проекты, используя собственный мозг и допуская минимальное количество ошибок. Я покажу это вам сегодня здесь. Спасибо
from __main__ import app
from flask import render_template, redirect, url_for, flash, session, request
import sqlite3
from db_connector import database
from flask import request
import hashlib
from functools import wraps
from flask import request, jsonify, session
import sqlite3
db = database()
@app.route("/")
def home():
return render_template("home.html")
@app.route("/register", methods=["GET", "POST"])
def register():
if request.method == "POST":
email = request.form.get("email")
login = request.form.get("login")
password = request.form.get("password")
# Хешування
hashed_password = hashlib.md5(str(password).encode()).hexdigest()
user_check = db.queryDB("SELECT * FROM Register WHERE email = ?", [email])
if user_check:
flash(f"{email} - This email already exists")
return redirect(url_for("register"))
db.updateDB("INSERT INTO Register(email, login, password) VALUES (?,?,?)", (email, login, hashed_password))
session["email"] = email
return redirect(url_for("account"))
if session.get("email"):
return redirect(url_for("account"))
return render_template("register.html")
@app.route("/login", methods=["GET", "POST"])
def login():
if request.method == 'POST':
email = request.form['email']
password = request.form['password']
hashed_password = hashlib.md5(str(password).encode()).hexdigest()
found_user = db.queryDB('SELECT * FROM Register WHERE email = ?', [email])
if found_user:
user_record = found_user[0]
if isinstance(user_record, tuple):
cols = [col[0] for col in db.cur.description]
user_record = dict(zip(cols, user_record))
if user_record['password'] == hashed_password:
session["email"] = email
return redirect(url_for("shop"))
else:
flash("Incorrect password.")
else:
flash("User not found. Please register.")
return render_template('login.html')
@app.route("/shop")
def shop():
return render_template ("shop.html")
@app.route("/about")
def about():
return render_template("about.html")
@app.route("/logout")
def logout():
session.clear()
return redirect(url_for("register"))
@app.route("/account")
def account():
if "email" not in session:
return redirect(url_for("register"))
user_res = db.queryDB("SELECT * FROM Register WHERE email = ?", [session['email']])
user_data = user_res[0] if user_res else None
purchases = db.queryDB("SELECT item_name, price, date FROM Purchases WHERE user_email = ? ORDER BY date DESC", [session['email']])
return render_template("account.html", user_data=user_data, purchases=purchases)
@app.route("/update_account", methods=["POST"])
def update_account():
if "email" not in session:
return redirect(url_for("register"))
email = session['email']
new_login = request.form.get("login")
name = request.form.get("name")
new_pass = request.form.get("new_password")
if new_pass:
hashed_pass = hashlib.md5(str(new_pass).encode()).hexdigest()
db.updateDB(
"UPDATE Register SET login = ?, name = ?, password = ? WHERE email = ?",
(new_login, name, hashed_pass, email)
)
else:
db.updateDB(
"UPDATE Register SET login = ?, name = ? WHERE email = ?",
(new_login, name, email)
)
flash("Changes saved!")
return redirect(url_for("account"))
@app.route("/buy//")
def buy_item(item_name, price):
if "email" not in session:
flash("Please log in to make a purchase.")
return redirect(url_for("register"))
user_email = session["email"]
db.updateDB(
"INSERT INTO Purchases (user_email, item_name, price) VALUES (?, ?, ?)",
(user_email, item_name, price)
)
flash(f"Success! You bought {item_name}.")
return redirect(url_for("account"))
@app.route('/checkout', methods=['POST'])
def checkout():
if "email" not in session:
return jsonify({'status': 'error', 'message': 'Not logged in'}), 401
data = request.get_json()
basket = data.get('basket')
total = data.get('total')
if not basket:
return jsonify({'status': 'error', 'message': 'Basket is empty'}), 400
user_email = session['email']
try:
for item_id in basket:
item = basket[item_id]
item_name = item['name']
price = item['price']
qty = item['qty']
final_name = f"{item_name} (x{qty})"
db.updateDB(
"INSERT INTO Purchases (user_email, item_name, price) VALUES (?, ?, ?)",
(user_email, final_name, price * qty)
)
return jsonify({'status': 'success', 'message': 'Order placed'})
except Exception as e:
print(f"Error during checkout: {e}")
return jsonify({'status': 'error', 'message': 'Database error'}), 500
@app.route("/contact", methods=["GET", "POST"])
def contact():
if request.method == "POST":
name = request.form.get("name")
email = request.form.get("email")
subject = request.form.get("subject")
message = request.form.get("message")
db.updateDB(
"INSERT INTO ContactMessages (name, email, subject, message) VALUES (?, ?, ?, ?)",
(name, email, subject, message)
)
flash("Your message has been sent! We will get back to you soon.")
return redirect(url_for("contact"))
return render_template("contact.html")