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/

我怎样才能解决这个问题 ?我考虑过search在 url 的结尾移动参数,但是看看是否有办法限制 next 的值可能会很有趣/

4

1 回答 1

3

您的正则表达式根本不匹配:您不接受该^字符。但即使是这样,也不可能在search变量中捕获完整的 URL,因为这样 URL 的其余部分将不匹配。

但是,我不会尝试解决此问题。试图在 URL 本身中捕获复杂的模式通常是错误的。对于搜索值,将其移至 GET 查询参数是完全可以接受的,这样您的 URL 将如下所示:

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

或者,如果您愿意,您仍然可以捕获 URL 中的pagerange值,但将search值保留为查询参数。

于 2012-12-19T09:29:08.060 回答