2

我建议的行为:

用户加载我的“搜索”页面 www.site.com/search,在表单中输入他们的查询,单击提交,然后最终访问 www.site.com/search/the+query 而不是 www.site。 com/search?q=the+query。我已经阅读了很多 Pylons 文档,刚刚阅读完 Routes 文档,我想知道这是否可以/应该发生在 Routes 层。我已经将我的应用程序设置为在给定 www.site.com/search/the+query 时执行搜索,但无法弄清楚如何将表单发送到该目的地。

或者这是应该在带有redirect_to() 的控制器内部发生的事情吗?

或者别的地方?

跟进:

这不是现在真正的“一成不变”的愿望,而是对集思广益未来功能的好奇心。我正在设计一个使用 Wikipedia 转储的应用程序,并观察到当用户在 Wikipedia 上执行搜索并且搜索不太模糊时,它会直接重定向到文章链接:en.wikipedia.org/wiki/Apple。它实际上是在执行中间 HTTP 302 重定向步骤,我只是好奇在 Pylons 中是否有更优雅/可爱的方式来执行此操作。

4

2 回答 2

2

HTML?q=表单旨在通过查询字符串(后者需要做一些事情)。POSTredirect_to

但是为什么你需要这种奇怪的行为而不是仅仅遵循标准呢?!请根据应用程序级需求解释您的用例......!

于 2009-07-08T05:56:42.583 回答
2

您可以为任何 URL 发送您想要的任何内容,但如果您希望特定 URL 出现在浏览器的地址栏中,则必须使用重定向。这与您在服务器端使用 Pylons、Django 还是 Rails 无关。

在处理/search(无论是POST还是GET前 N 个结果。这只是正常的做法,AFAIK。

于 2009-07-08T13:03:58.663 回答