根据HTTP/1.1规范:
该
POST方法用来请求原始服务器接受被附在请求由标识的资源的新下属实体Request-URI的Request-Line
换句话说,POST用于创建.
该
PUT方法请求将所包含的实体存储在提供的实体下Request-URI.如果Request-URI引用已经存在的资源,则封闭的实体应该被视为驻留在源服务器上的实体的修改版本.如果Request-URI未指向现有资源,并且该URI能够被请求用户代理定义为新资源,则源服务器可以使用该URI创建资源.
也就是说,PUT用于创建或更新.
那么,应该使用哪一个来创建资源?或者需要支持两者?
Django视图指向一个函数,如果您只想更改一些功能,这可能是一个问题.是的,我可以有百万个关键字参数,甚至更多if函数中的语句,但我更多地考虑面向对象的方法.
例如,我有一个显示用户的页面.此页面与显示组的页面非常相似,但它仍然不像仅使用其他数据模型.集团还有会员等......
一种方法是将视图指向类方法,然后扩展该类.有没有人试过这种方法或有任何其他想法?
我在寻找有关这方面的信息时遇到了一些困难,可能这不是正确的方法.我想基于http方法(GET或POST或DELETE或PUT)将请求路由到两个不同的视图函数.
由于它通常在REST apis中完成,这意味着相同的url具有基于HTTP方法的不同含义.
我没有在django的urls.py文件中看到这样做的方法,我想要像:
url(r'^tasks$', 'app.views.get_tasks', method='get'),
url(r'^tasks$', 'app.views.create_task', method='post'),
Run Code Online (Sandbox Code Playgroud)
(注意:我正在使用django 1.4)