我正在考虑为个人项目实施URLMapping。我已经知道存在解决方案所以请不要回答建议我应该使用一个解决方案。
我想要的是收集开发人员和网络用户对URL映射实现的意见。我特别希望你回答:
我希望你从两个观点回答:
如果对此事有任何意见,我将不胜感激,谢谢!
答案 0 :(得分:1)
好吧,我应该注意到url-routing标签不应该吗? :-)抱歉。
jcd的模仿我的经验 - Django也是我用的。
我喜欢这样一个事实,即应用程序的路由位于应用程序中(在urls.py中),并且可以包含在可能使用该应用程序的任何项目中。我对正则表达式感到满意,因此在正则表达式中指定路由并不会使我相处(但我看到其他程序员在一些更不常见的表达式中划过头脑)。
能够通过某个标识符(在Django的情况下通过路由名称)来反转路由是必须的。模板或控制器中的硬编码URL(在Django中查看)是一个很大的禁忌。 Django有一个使用reverse()
method
我希望我能做的一件事就是在django中有默认路线的概念(比如Rails does甚至是Pylons)。在Django中,每个路由都必须映射到一个视图方法,没有尝试根据URL本身调用某个视图的概念。好处是没有任何意外 - 您的urls.py是您的项目或应用程序的目录。缺点是urls.py往往更长。
答案 1 :(得分:1)
我只使用过django的URLConf机制。我认为它依赖于urlpatterns
变量的方式有点脆弱,但我喜欢它在指定模式和调度到其他url配置方面的表现力。我认为最好的办法是首先找出你的URL方案,然后尝试一些解决方案,看看哪些方法最匹配。如果您使用GET
/ POST
/ PUT
/ DELETE
的完整补丁进行核心REST,并检查用户代理的Accept
标头,除此之外,django默认情况下会让你在URL配置文件和视图文件之间拆分逻辑,因此它可能不是最干净的解决方案。
但是,由于它是所有Python,因此在分配给urlpatterns
之前,您可以进行更复杂的处理。
真的,你想要一个能满足你需要的系统。您的URL方案是您的API,因此请不要根据您使用的工具对其进行妥协。找出你的API,然后找到可以让你做到这一点的工具。
编辑:也在谷歌搜索“URL方案设计”。我没有太多努力就找到了这个:http://www.gaffneyware.com/urldesign.htm。不全面,但从flickr的作用中得到了一些好的建议。