我正在尝试使用具有以下结构的 Django 定义搜索 url
www.example.com/afdata/search?device=television&category=news&query=channel&limit=30/
我的目标是从上面的 url 和将其传递给定义如下的 View
def search(request, device='all', category='single', query='', limit=30):
return HttpResponse("device=%s, category=%s, query=%s, limit=%d", device, category, query, limit)
afdata
是应用程序,在 url 配置文件中我定义了 url 如下:
from django.conf.urls.defaults import *
urlpatterns = patterns('afdata.views',
(r'^$', 'index'),
(r'^search?device=(?P<device>.*)&category=(?P<category>.*)&query=(?P<query>.*)&limit=(?P<limit>d+)/$', 'search')
)
当我在浏览器中使用上述搜索查询运行时,出现 500 Internal Server Error
。 index
响应良好。对我可能做错了什么有什么建议吗?
最佳答案
我建议您将搜索网址更改为:
(r'^search', 'search')
然后在你看来做
def search(request):
device = request.GET.get('device', 'all')
category = request.GET.get('category', 'single')
query = request.GET.get('query', '')
limit = request.GET.get('limit', 30)
return HttpResponse("device=%s, category=%s, query=%s, limit=%d", device, category, query, limit)
这更加健壮、多变和灵活。
关于python - Django url正则表达式的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6339476/