2011-10-25 3 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のリンクを表示する必要があります:それは、次のURLのいずれかになります

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

質問はどのようにこのようなリンクを生成するのですか?

私は関連リンクを使用しようとしました:/page2page2 - が正しく動作しません。私はどのようにself.request.pathと絶対的なリンクを作成するか分からない - それも正しく動作しません。

+2

もっと情報を追加してください...あなたの現在の説明で欲しいものを知ることは不可能です – fceruti

+0

@fceruti、ここではっきりしていないものは何ですか?私は現在のページにユーザーを持っています(可能なリンクは上記の通りです - 実際にはURL(1)、(2)、(3)は同じページです)、2番目のページのリンクを生成する必要があります。 –

+0

@fceruti、私は私の質問を言い換えました。以下のドリューの答えもご覧ください。 –

答えて

2

/page2は動作しません。先頭に/ /現在のディレクトリではなく、Webサイトのルートに相対的になります。

page2は#2以外のすべてで機能します。末尾にスラッシュを付けないと、something-elseは現在のディレクトリではなくファイルとして解釈されます。

あなたのリンクがユーザーの住所に基づいて変更されないように、1つの解決策は/something/something-else/page2にリンクすることです。 something.py

+0

ドリュー、あなたはすべてを正しく記述しました:)私の質問は、そのpage2のリンクを生成する方法ですか?私。私は現在のURL(上記の4つのオプションを参照)を取る必要があり、いくつかの変換を行い、page2へのリンクを取得する必要があります。質問はこれらの変換についてです - 私は何をすべきですか? –

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)

、ごclass PageHandlerであなたは、キーまたはあなたが正しいコンテンツをレンダリングするために、手動で解析しているIDを解析する必要があります。

+0

ありがとう、クリス - トップ。これは私がすでに持っているものです。質問は異なります(申し訳ありませんが、最初は混乱していたようです - 私はそれを編集したばかりです)。 –

関連する問題