Flask Session在蓝图中不具备持久性

时间:2017-04-11 12:01:45

标签: python session flask

我正在使用蓝图来构建Web应用程序。我遇到的问题不是持久性问题。我可以启动会话,但是当我单击链接时会话丢失。我做错了什么?我没有使用数据库登录我只是硬编码。 当我提交时,我做了     session ['username'] =我。 在我登录后重定向到的页面上工作。但是,当我单击该页面上的链接时,会话将丢失。该
    会话[“用户名”] 离开了。我也有我的秘密密钥集。它在我的配置文件中是硬编码的。 在我的管理文件夹中,我有一个带有登录信息的路由文件。登录有效,但当我点击链接转到其他页面时,用户名将丢失。

C:.
└───blueprintsite
├───admin
│   ├───templates
│   │   └───admin
│   └───__pycache__
├───reports
│   └───__pycache__
├───users
│   ├───templates
│   │   └───site
│   └───__pycache__
├───static
│   ├───css
│   ├───fonts
│   ├───images
│   │   ├───media
│   │   ├───people
│   │   └───preview

2 个答案:

答案 0 :(得分:2)

您好,您可以开始使用Flask-Login来处理您的用户身份验证和会话管理,好的事情是使用flask-login,您不必担心会话管理,因为它会自动为您执行此操作。我已经将它用于我的Blueprint应用程序多年了,它对我来说非常适合。

给它一个阅读,我希望它可以帮助你

答案 1 :(得分:0)

当您的Flask应用的SESSION_COOKIE_PATH(或APPLICATION_ROOTconfiguration values不包含蓝图设置为路由的路径时,可能会发生此问题。

例如,如果您的应用的APPLICATION_ROOT设置为/pages,但您的蓝图的前缀为/admin,那么前者的会话Cookie就会赢得&#t对后者有效。在这种情况下,明确地将SESSION_COOKIE_PATH设置为/应该可以解决问题。