2011-10-25 98 views
0

我知道當前用戶的位置。它可以是以下網址之一:如何創建頁面鏈接?

(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

請添加更多信息......不可能知道你想要的是什麼當前描述 – fceruti

+0

@fceruti,這裏有什麼不清楚的地方?我有當前頁面上的用戶(可能的鏈接在上面給出 - 實際上網址(1),(2)和(3)是針對同一頁面),我需要爲第二頁生成鏈接。 –

+0

@fceruti,我改寫了我的問題。請參閱下面的Drew的答案。 –

回答

2

/page2永遠不會工作;領先/使其相對於網站根目錄而不是當前目錄。

page2應該爲#2;沒有結尾斜槓,something-else被解釋爲文件而不是當前目錄。

一種解決方案是鏈接到/something/something-else/page2,以便您的鏈接不會根據用戶的地址更改。

+0

德魯,你已經正確描述了一切:)。我的問題是如何生成該page2鏈接?即我需要採用當前的URL(請參閱上面的4個選項),進行一些轉換並獲得第2頁的鏈接。問題是關於這些轉變 - 我該怎麼做? –

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) 

util.run_wsgi_app(application)

something.py,在你class PageHandler你要解析的關鍵還是要手動解析渲染正確的內容的ID。

+0

謝謝,Chris-Top。這就是我已經擁有的。問題是不同的(對不起,看起來它在開始時很混亂 - 我剛剛編輯過)。 –