【发布时间】:2012-01-23 04:33:06
【问题描述】:
例如这段代码:
from flask import session
@app.route('/is_logged_in/')
def is_logged_in():
return 'user' in session
在运行 Flask 的开发服务器时它运行良好,但在任何服务器(Apache、nginx、Lighttpd )。
有人知道为什么吗?
如果重要的话,我的实际代码在 GitHub 上。
在使用 Flask 的内部服务器运行时,它可以完美运行,但我无法让任何会话变量与生产网络服务器一起使用:https://github.com/Blender3D/Webminal/blob/master/server.py
【问题讨论】:
-
请提供错误的堆栈跟踪。您可以通过设置
app.config['DEBUG'] = True和/或查看服务器的错误日志来做到这一点。 -
你能看到在 web 服务器上运行时请求是否在 is_logged_in() 中命中吗?很可能您的服务器规则阻止了路径。
-
@sjn:我使用的每个 URL 装饰器都有效,除了提到
session的那些。我的fcgi和wsgi文件的配置中有app.debug = True,但仍然没有回溯。 -
我认为这是会话问题的原因是因为我的
login函数从未登录。我在各个阶段设置了flash()函数,但我永远无法成功保存会话变量(我的登录信息被接受,但会话永远不会开始)。
标签: python session flask lighttpd