2017-01-26 8 views
0

Я написал эту простую программу:Невозможно использовать PUT метода с колбой

@app.route('/puttest/', methods=['GET', 'PUT']) 
def upload_file(): 
    if request.method == 'PUT': 
     return 'Hello, {}!'.format(request.form['name']) 
    else: 
     return ''' 
      <title>Does it work ?</title> 
      <h1>PUT test</h1> 
      <form action=http://localhost:8887/puttest/ method=put> 
       <input type=text name=name> 
       <input type=submit value=try> 
      </form> 

     ''' 

if __name__ == '__main__': 
    app.run('0.0.0.0', 8887) 

Это прекрасно работает для GET метод, но он не работает с PUT. Попытка отправить put сообщение, я могу видеть эту ошибку в браузере:

Method Not Allowed 

The method is not allowed for the requested URL. 

Что случилось с put метода?

Это будет работать нормально, если я изменю put метод на post везде в программе.

+0

Может быть, у вас есть один Slash слишком много. Попробуйте http: // localhost: 8887/puttest в форме и/puttest в маршруте – Nils

+0

@ Нильс, он работает с 'post' правильно. – faoxis

ответ

3

PUT не будет работать с атрибутом метода HTML. Допустимые значения: метод = получить | сообщение

Вы должны использовать POST в WebForms:

@app.route('/puttest/', methods=['GET', 'POST']) 
def upload_file(): 
if request.method == 'POST': 
    return 'Hello, {}!'.format(request.form['name']) 
else: 
    return ''' 
     <title>Does it work ?</title> 
     <h1>PUT test</h1> 
     <form action=http://localhost:8887/puttest/ method=post> 
      <input type=text name=name> 
      <input type=submit value=try> 
     </form> 
    ''' 

Дальнейшая информация по адресу: Using PUT method in HTML form и HTML Standard

 Смежные вопросы

  • Нет связанных вопросов^_^