Jun-11-2020, 03:02 AM
Hey guys I'm working on a log in page and I'm getting an error that it's a tuple value but I am just trying to get one value. Does anyone see the error in my code?
Thanks!
Thanks!
import os import psycopg2 from flask import Flask, session, render_template, request from flask_session import Session from sqlalchemy import create_engine from sqlalchemy.orm import scoped_session, sessionmaker app = Flask(__name__) # Check for environment variable if not os.getenv("DATABASE_URL"): raise RuntimeError("DATABASE_URL is not set") DATABASE_URL = os.environ['DATABASE_URL'] conn = psycopg2.connect(DATABASE_URL, sslmode='require') # Configure session to use filesystem app.config["SESSION_PERMANENT"] = False app.config["SESSION_TYPE"] = "filesystem" Session(app) # Set up database engine = create_engine(os.getenv("DATABASE_URL")) db = scoped_session(sessionmaker(bind=engine)) @app.route("/welcome") def index(): return render_template("welcome.html") @app.route("/login") def login(): password = request.form.get("password") username = request.form.get("username") db.execute('SELECT * FROM users WHERE username = %s AND password = %s', (username, password,)) account = db.fetchone() if account: return render_template("login.html") else: print "No!" @app.route("/home") def home(): return render_template("home.html") @app.route("/register", methods=["GET", "POST"]) def register(): if request.method == "GET": return render_template("register.html") elif request.method == "POST": password = request.form.get("password") username = request.form.get("username") session.clear() db.execute("INSERT INTO users (username, password) VALUES (:username, :password)", {"username":username, "password":password}) db.commit() return render_template("login.html")