Google App Engine注销网址

时间:2010-10-30 14:34:31

标签: google-app-engine logout

我在使用GAE(Python)进行注销链接时遇到了问题。

这是我正在考虑的page

在我的模板中,我创建了一个链接

<p><a href="\users.create_logout_url("/")\">Logout</a></p>

但是当我点击它时,我会收到来自Chrome的“断链”消息。链接的网址如下所示:

http://localhost:8085/users.create_logout_url(

我的问题:

任何人都能解释一下这是如何运作的吗?

开发服务器的正确网址是什么?

应用服务器的正确网址是什么?

注销网址中的(“/”)是什么?

感谢。

修改

此链接有效;但我不知道为什么:

<p><a href="http://localhost:8085/_ah/login?continue=http%3A//localhost%3A8085/&action=Logout">Logout</a></p>

3 个答案:

答案 0 :(得分:2)

您使用的是哪种模板?从输出中可以清楚地看出,您没有正确地转义代码。

答案 1 :(得分:2)

我觉得你想这样做:

self.response.out.write("This is the url: %s", users.create_logout_url("/"))

您也可以使用GAE实现的django模板将其传递给您的模板。

from google.appengine.ext.webapp import template
...
...
(inside your request handler)
  class Empty: pass
  data = Empty()
  data.logout = users.create_logout_url("/")
  self.response.out.write(template.render(my_tmpl, {'data': data})

一种有用的方法是将各种信息添加到BaseRequestHandler,然后将其用作所有其他请求处理程序类的基类。

from google.appengine.ext import webapp
...
class BaseRequestHandler(webapp.RequestHandler):
  def __init__(self):
     webapp.RequestHandler.__init__(self) # extend the base class
     class Empty: pass
     data = Empty()
     data.foo = "bar"

然后,您的新类将可以访问您在基类中提供的所有数据。

class OtherHandler(BaseRequestHandler):
  def get(self):
     self.response.out.write("This is foo: %s" % self.data.foo) # passes str "bar"

希望它有所帮助。

一个。

答案 2 :(得分:0)

您或多或少地关注了本文针对用户帐户显示的内容。在gwt中我将服务器端存储在logout / login url中,然后将它们传递给客户端

http://www.dev-articles.com/article/App-Engine-User-Services-in-JSP-3002