我在使用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>
答案 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