我想在Django中创建一个位于URL /搜索的搜索框,并重定向到友好的URL,如/ search / queryterm - 而不是在URL中使用?q = queryterm)
因此,用户键入查询字词,将它们带到/ search / queryterm,并显示结果列表。
我可以获得并显示结果OK给定像/ search / queryterm这样的URL。
但我不知道从表单处理URL重定向的最佳方法。这应该是表单中纯HTML的重定向(感觉有点hacky),如果是这样,我该如何实现呢?
或者应该将表单POST发送到/ search /,然后将ResponseRedirect发送到/ search / queryterm页面?这不会慢吗?
谢谢!
答案 0 :(得分:5)
我认为发布一个搜索查询是一个坏主意,并且滥用HTTP动词应该是一个GET请求。您是否有任何理由无法根据request.GET
参数重定向到友好的网址?
我也不同意为搜索查询使用“友好”网址的原则;在我看来,它们应该用于永久性资源,而不是像搜索结果这样的短暂内容。
对“友好”网址进行反击的原因是因为查询字符串被滥用来访问应该存在于普通网址的内容,例如/product.php?id=35
。我不认为搜索结果属于这一类。