Это не то же самое для POST для URL-адреса, кроме как для его получения, УДАЛИТЬ его или ОТКЛЮЧИТЬ. Эти действия коренным образом отличаются. Тем не менее, Django, кажется, игнорирует их в своем диспетчерском механизме. В принципе, каждый вынужден либо полностью игнорировать глаголы HTTP, либо делать это во всех представлениях:
def my_view(request, arg1, arg2):
if request.method == 'GET':
return get_view(request, arg1, arg2)
if request.method == 'POST':
return post_view(request, arg1, arg2)
return http.HttpResponseNotAllowed(['GET', 'POST'])
Несколько решений, которые я нашел для этого в Интернете (этот фрагмент для отправки на основе глаголов или этот декоратор для требования глагола) не очень элегантны, поскольку они явно являются обходными способами.
Ситуация с CherryPy кажется одинаковой. Единственные рамки, которые я знаю об этом, - это web.py и Google App Engine.
Я рассматриваю это как серьезный недостаток дизайна для веб-фреймворка. Кто-нибудь согласен? Или это намеренное решение, основанное на причинах/требованиях, которые я игнорирую?