ARTICLE AD BOX
Today is my first day using ASP.NET MVC, and I'm finding it very intriguing. I only just started learning asp.net.
So basically I'm trying to call a procedure from an MSSQL database, and with it I need to send a paramater "PlaceID", which is an integer. This procedure basically just picks out a number of columns from different tables in the database. Here is the Linq to SQL code
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/<item_name>/<float:price>") 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")