Я видел шаблон в Flask (и Lithium), где один метод просмотра соответствует нескольким HTTP-глаголам; пример:Методы просмотра фляг и SRP
@app.route('/login', methods=['GET', 'POST'])
def login():
error = None
if request.method == 'POST':
if request.form['username'] != app.config['USERNAME']:
error = 'Invalid username'
elif request.form['password'] != app.config['PASSWORD']:
error = 'Invalid password'
else:
session['logged_in'] = True
flash('You were logged in')
return redirect(url_for('show_entries'))
return render_template('login.html', error=error)
Я думаю, что это приводит к раздутым методам просмотра, которые делают больше чем одно.
Я собирался спросить, почему это был шаблон по умолчанию в Flask, но теперь я вижу, что существует method-based views.
По-прежнему, почему в структуре вообще не существуют методы, основанные на методах? Потому что не все протоколы клиент-сервер говорят через REST, а представления, основанные на методах, по своей сути являются REST-ароматизированными?