-1

我正在使用 Flask-Session 来确定天气是否有人登录到站点,但是当我尝试为其分配值时,它返回错误“TypeError:'Session' 对象不支持项目分配”。

    @app.route("/login", methods=["POST", "GET"])
        def login():  
            if request.method == "POST":  
                username = request.form["gets username input"]  
                password = request.form["gets password input"]  
                allowed = db.execute(SQL for checking if the username and password are in the SQL db)  
                allowed = allowed.first()[0]  
                if allowed == 1:  
                    loginsession = Session()  
                    id = db.execute(SQL for finding the id of the user)  
                    loginsession["id"] = id  
                    print(loginsession["id"])  
                    return redirect(url_for("the route to the profile page"))  
                else:  
                    return "Incorrect username or password"  
            else:  
                return render_template("login.html")

谢谢你的帮助!

4

1 回答 1

0

你可以使用这个例子

 @app.route("/login",methods = ["POST","GET"])  
    def login():  
        if request.method == "POST":  
            try:   
                Email = request.form["email"]
                pwd = request.form["pwd"]    
                with sqlite3.connect("Account.db") as con:  
                    cur = con.cursor()
                    print("Connection test")   
                    cur.execute("SELECT * FROM Account WHERE Email= ? and Password= ?",(Email, pwd))
                    row = cur.fetchone()
                    print("query test")  
                    while row is not None:
                        session['email']=request.form['email']  
                        print(row[1])
                        return render_template("success.html",msg = msg)
                    else:
                        msg = "sorry wrong id"
                        return render_template("failure.html",msg = msg)
            except:  
                con.rollback()  
                msg = "problem"  

然后在另一个函数中

 if 'email' in session:
        email = session['email']   
        return render_template("view.html") 
    else:
        return '<p>Please login first</p>'  
于 2020-05-14T17:59:11.390 回答