我尝试使用Django定义一个搜索url,其结构如下
www.example.com/afdata/search?device=television&category=news&query=channel&limit=30/
我的目标是从上面的url中提取值television
、news
、channel
和{
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
。^{cd7>回答很好。对我可能做错了什么有什么建议吗?在
我建议您将搜索url更改为:
那么在你看来呢
^{pr2}$这是灵活多变的。在
在Apache日志中查找stacktrace。另外:您确定您不是指在您的search()的第二行上HTTPResponse not HTTPRequest?在
Django的URL模式与URL的查询部分(以
?
开头的部分)不匹配。只有在URL结构本身中嵌入参数时,才能执行您正在尝试的操作。在有关详细信息,请参见the Django docs。在
如果你的网址是:
然后您可以将其与URL模式匹配,例如:
^{pr2}$(这将是一个有点奇怪的URL约定,但它可以工作。)
如果URL中包含查询,则只匹配
?
之前的部分,然后视图需要从request.GET
解析出参数。(如果您的示例中已经有了类似的函数,那么编写一些粘合代码来传递参数就很容易了。)相关问题 更多 >
编程相关推荐