在您的情况下,NullSessionInterface
会话实现会引发异常,这是使用Flask-Session时的 默认会话类型 。这是因为您从未真正将SESSION_TYPE
配置提供 给Flask ;仅在模块中将其设置为全局 变量 是 不够的 。所述瓶会话快速启动的示例代码并设置一个全局,但随后通过调用使用当前模块作为配置对象app.config.from_object(__name__)
。
对于Flask 0.10或更高版本,此默认设置没有太大意义;NullSession
Flask 0.8或0.9可能是有意义的,但是在当前版本中,flask.session.NullSession
该类用作错误信号。就您而言,它现在给您错误的错误消息。
将SESSION_TYPE
配置选项设置为其他内容。挑一个redis
,memcached
,filesystem
或mongodb
,并确保其设置在app.config
(直接或通过各种Config.from_*
方法)。
为了进行快速测试,将其设置filesystem
为最简单。那里有足够的默认配置,无需额外的依赖即可正常工作:
if __name__ == "__main__":
app.secret_key = 'super secret key'
app.config['SESSION_TYPE'] = 'filesystem'
sess.init_app(app)
app.debug = True
app.run()
如果看到此错误并且您 使用Flask- Session,则说明设置密码时出了点问题。如果您正在设置app.config['SECRET_KEY']
或app.secret_key
处于上述if __name__ == "__main__":
防护状态,则出现此错误,则可能是通过WSGI服务器运行Flask应用程序,该服务器将Flask项目作为模块 导入的,并且该__name__ == "__main__"
块永远不会运行。
无论如何,总是最好在单独的文件中管理Flask应用程序的配置。