【问题标题】:App Engine if elif else working on dev but not productionApp Engine 如果 elif 其他工作在开发而不是生产
【发布时间】:2012-06-06 00:10:29
【问题描述】:

当我运行以下代码时

user = users.get_current_user()
if users.is_current_user_admin():
    loggedin = 'Admin'
elif user:
    loggedin = 'User'
else:
    loggedin = 'Anonymous'

在开发环境中,当我以管理员身份登录时获得管理员,以用户身份登录,在未登录时获得匿名。在生产环境中,我总是获得匿名。为什么这不起作用?

【问题讨论】:

  • users.get_current_user()的值是多少?
  • @Blender 返回一个 App Engine 用户对象。 App Engine Users,基本上当用户登录时返回true。
  • 您能否发布更多上下文代码,最好是重现问题的简短请求处理程序脚本?
  • 如果 elif 不起作用,我认为标题不应该是。 ^_^,看起来更像是登录问题。我建议您稍微编辑一下标题以获得更多帮助。如果 elif 不能在 python 中工作,基本上没有机会。

标签: python google-app-engine python-2.7


【解决方案1】:

问题与 if/elif/else 或 users.create_login_url() 无关。问题是当用户使用 HTTPS 和 users.create_login_url() 登录时,App Engine 无法识别在 http 请求中登录的用户。我在这个here 上创建了一个新问题。我相信这与 cookie 的设置方式有关。

代码用于开发而不是生产的原因是开发环境如何处理 HTTPS url,它将其重新映射到 http 并为请求提供服务,从而避免了问题。

【讨论】:

    【解决方案2】:

    首先需要通过 users.create_login_url() 登录

    【讨论】:

      猜你喜欢
      • 2012-03-21
      • 1970-01-01
      • 2012-01-11
      • 2014-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-25
      • 1970-01-01
      相关资源
      最近更新 更多