2

私のアプリケーションは、いくつかのゲーム サーバーの IP アドレスをリストしています。

正規表現を使用する単純な検索エンジンを追加したいと考えています。^200.で始まる IP アドレスのみを一覧表示するように入力します。200.

フォームは、次のような GET リクエストを送信して、結果ページにリダイレクトします。

/servers/search/^200./page/1/range/30/

これは私が使用している行ですurls.py:

url(r'^servers/search/(?P<search>[a-zA-Z0-9.]+)/page/(?P<page>\d+)/range/(?P<count>\d+)/$', gameservers.views.index)

しかし、それは私が期待したようには機能しません。結果は表示されません。ローカル変数を表示するために、意図的に構文エラーを作成しました。search次に、変数の値が次のようになっていることに気付きました。

^200./page/1/range/30/

どうすればこれを修正できますか? searchURLの末尾にパラメータを移動することも考えましたが、次の/.

4

1 に答える 1

3

正規表現がまったく一致しません^。文字を受け入れていません。しかし、たとえそうであったとしてもsearch、残りの URL が一致しないため、完全な URL をすべて変数に取り込むことはできません。

ただし、これを修正しようとはしません。URL 自体に複雑なパターンを取り込もうとするのは、通常は間違いです。検索値については、URL が次のようになるように、それを GET クエリ パラメータに移動してもまったく問題ありません。

/servers/search/?search=^200.&page=1&range=30

または、必要に応じて、URL 内のpageとの値をキャプチャして、値をクエリ パラメータとして残すこともできます。rangesearch

于 2012-12-19T09:29:08.060 に答える