2

外部リンクをアプリの中央の場所で管理して、変更があった場合に 1 か所で変更するだけで済むようにしたいと考えています。

私はすでに webapp2s ルーティングを使用しているので、それを使用して、他のすべてのリンクと同じように url_for を使用できると考えました。そこで、次のことを試しました。

Route('http://www.google.com', name='google', build_only=True)

しかし、リンクをレンダリングすると、次のようになります。

uri_for('google')

次のように http:// ビットをエンコードします。

http%3A//www.google.com

つまり、href タグで使用すると、次のような相対リンクになります。

http://localhost:8080/some/path/http%3A//www.google.com

したがって、質問は次のとおりです。

  • webapp2s ルーティングは外部リンク用に設計されていますか?
  • はいの場合、絶対 URL を追加するにはどうすればよいですか?
  • いいえの場合、そうするための同様のメカニズムはありますか?

別の「同じだが異なる」メソッドを記述する必要なく、url_for をシームレスに使用できるように、webapp2s ルーティングを使用するとよいでしょう。

4

2 に答える 2

0

独自の uri_for メソッドを実装し、代わりにそれを使用することで問題を解決できました

def uri_for(_name, _request=None, *args, **kwargs):
    uri = webapp2.uri_for(_name, _request, *args, **kwargs)
    return urllib.unquote(uri)
于 2013-02-13T12:52:12.657 に答える