如何创建页面链接?

时间:2011-10-25 19:53:33

标签: python google-app-engine

我知道当前用户的位置。它可以是以下网址之一:

(1) http://myapp.appspot.com/something/something-else/
(2) http://myapp.appspot.com/something/something-else
(3) http://myapp.appspot.com/something/something-else/page1
(4) http://myapp.appspot.com/something/something-else/page3

(实际上,地址1,2和3用于同一页面1)

我需要在这些页面上显示第2页的链接:

http://myapp.appspot.com/something/something-else/page2

问题是如何生成这样的链接?

我尝试使用相对链接:/page2page2 - 无效。我不确定如何创建与self.request.path的绝对链接 - 它也无法正常工作。

2 个答案:

答案 0 :(得分:2)

/page2永远不会奏效;领先/使其相对于网站根而不是当前目录。

page2应该适用于除#2之外的所有内容;如果没有尾部斜杠,something-else将被解释为文件而不是当前目录。

一种解决方案是链接到/something/something-else/page2,这样您的链接就不会根据用户的地址发生变化。

答案 1 :(得分:1)

import something #refers to your .py file with the template handler

...

application = webapp.WSGIApplication([

  ('/something/something-else/', something.SomeThingElseHandler),

  ('/something/something-else', something.SomeThingElseHandler),

  ('/something/something-else/'  + '([^/]+)/', something.PageHandler),
  #The above pattern will be recognized if you close the url with /
  #If you want your url to end without the slash your remove it for the reg ex. like
  ('/something/something-else/'  + '([^/]+)', something.PageHandler),      
],
debug=config.DEBUG)

application = webapp.WSGIApplication([ ('/something/something-else/', something.SomeThingElseHandler), ('/something/something-else', something.SomeThingElseHandler), ('/something/something-else/' + '([^/]+)/', something.PageHandler), #The above pattern will be recognized if you close the url with / #If you want your url to end without the slash your remove it for the reg ex. like ('/something/something-else/' + '([^/]+)', something.PageHandler), ], debug=config.DEBUG)

util.run_wsgi_app(application) 中,在something.py中,您必须手动解析密钥或ID,以呈现正确的内容。