Flask登录网站报错TypeError: 'SecureCookieSession'对象不可调用求解决
错误原因
你在home视图函数里错误地将session对象当作函数调用了。Flask的session是字典类型的对象,要获取其中的键值对,必须使用方括号[]语法,而非圆括号()的函数调用语法。
具体错误代码行
你的代码中这一行导致了报错:
return render_template("index.html", user=session("username"), list=list)
修正方案
将session("username")改为session["username"],修正后的home函数代码如下:
@app.route("/") def home(): if "username" in session: # 注意:不要用list作为变量名,这是Python内置类型,建议替换为其他名称 user_list = '' return render_template("index.html", user=session["username"], list=user_list) else: return render_template("login.html")
额外优化建议
- 避免使用Python内置名称(如
list)作为变量名,防止覆盖内置函数/类型引发潜在问题。 - 全局数据库连接在多请求场景下可能出现连接异常,建议将数据库连接逻辑放在视图函数内部,或使用数据库连接池管理连接。
- 不要明文存储用户密码,推荐使用
werkzeug.security提供的generate_password_hash和check_password_hash对密码进行哈希加密后再存储。
内容的提问来源于stack exchange,提问作者ARandomCoder
相关产品推荐
相关产品推荐

