1

次の Python スニペットを使用して URL を取得しています。

address = self.request.url

これにより、次のような URL が得られます。

http://domain.tld

また

http://sub.domain.tld

しかし、私の URL は次のようになります。

http://sub.sub.domain.tld

この場合、コードは URL をまったく返しません。最後に、URL から最初の「サブ」ドメインを取得する必要があります。ただし、URL に 2 つのサブドメインがある場合にコードが機能しない場合は続行できません。

この問題を解決する方法を知っている人はいますか?

4

3 に答える 3

1

プレーンなPythonスクリプトで問題がない場合は、

import urlparse
address = urlparse("http://sub.sub.domain.tld")

print address.netloc
print address.path
print address.scheme
于 2012-07-06T07:30:47.720 に答える
0

提供された情報から、私はあなたにそれ自体答えを与えることはできません。しかし、私はいくつかのトラブルシューティング情報を与えることができます。request.urlが空の場合は、データが入力されていない別の理由が考えられます。

これはGAEリクエストオブジェクトであることを理解しています。これはWebObから継承します。

リクエストオブジェクトには、他にもいくつかの属性があります。それらをすべて印刷して、何が含まれているかを確認してみてください。

print self.request.host
print self.request.host_url
print self.request.scheme   # should be 'http'

これらがすべて空の場合は、リクエストオブジェクトが正しく作成されていないようです。それが根本的な問題である可能性があります。

于 2012-07-06T07:29:17.460 に答える
0

self.request.url の由来は未回答のようです。ただし、Google App Engineを思い出させるので、GAEを使用している可能性が低い場合は、使用できます

self.request.host_url 

ホスト URL を取得するか、

self.request.path_url

クエリ パラメータなしで URL を取得します。

ソース: http://docs.webob.org/en/latest/reference.html

これがあなたが求めているものとは何の関係もない場合、私の謝罪.

于 2012-07-06T07:38:42.957 に答える