【问题标题】:Admin in Google App EngineGoogle App Engine 中的管理员
【发布时间】:2013-12-07 03:33:14
【问题描述】:

我正在为我的 GAE 应用程序创建管理面板。

这是我的 app.yaml 的一部分

- url: /admin/.*
  script: admin.application
  login: admin

- url: /.*
  script: myApp.application

这是我的 admin.py 的一部分:

class AdminPage(webapp2.RequestHandler):
    def get(self):
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.write('Hello, Admin')

application = webapp2.WSGIApplication([
    ('/', AdminPage),
], debug=True)

如果我没有登录,我会收到“当前登录的用户 test@example.com 无权查看此页面。”消息,这正是我想要的。

当我以管理员身份登录时尝试转到 myApp/admin/ 时出现 404 错误,但我不知道如何解决。

【问题讨论】:

  • myApp/admin/ 是什么意思?不是localhost:8080/admin吗?
  • @mgilson 我认为他的意思是它就像一个迷你 CMS,删除帖子,编辑内容等。

标签: python google-app-engine webapp2


【解决方案1】:

您的应用程序似乎没有/admin/ 的规则。您需要将您的 application 更改为:

application = webapp2.WSGIApplication([
    ('/admin/', AdminPage),
], debug=True)

当您转到/admin/ 时,如果您未登录,您的app.yamllogin: admin 部分会在到达您的admin.py 文件之前显示登录错误。当您登录时,应用程序试图找到匹配/admin/的url,但唯一配置的url是/

【讨论】:

  • @dragonx 会匹配,但在这种情况下可能不是一件好事。像这样匹配会返回 AdminPage 而不是 404,而这样做更合适。此外,拥有资源的规范 URL 始终是一个好主意(这也允许您利用 webapp2.uri_for 函数)。我也会使用RedirectRoutestrict_slash=True 来获得从丢失或额外的斜杠重定向到配置的URL(例如/admin -> /admin/)的行为,但这只是关于如何路由应该正常运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-31
  • 2012-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-24
相关资源
最近更新 更多