当前位置: 首页 > 面试题库 >

方法不允许flask错误405

党博超
2023-03-14
问题内容

我正在开发flask注册表格,但收到错误消息:

error 405 method not found.

码:

import os
# Flask
from flask import Flask, request, session, g, redirect, url_for, abort, \
     render_template, flash, Markup, send_from_directory, escape
from werkzeug import secure_filename

from cultura import app

# My app
from include import User

@app.route('/')
def index():
    return render_template('hello.html')

@app.route('/registrazione', methods=['POST']) 
def registration():
    if request.method == 'POST':
        username= request.form.username.data
        return render_template('registration.html', username=username)
    else :
        return render_template('registration.html')

registration.html:

<html>
<head> <title>Form di registrazione </title>
 </head> 

    <body>
    {{ username }}
    <form id='registration' action='/registrazione' method='post'>
    <fieldset >
    <legend>Registrazione utente</legend>
    <input type='hidden' name='submitted' id='submitted' value='1'/>
    <label for='name' >Nome: </label> 
    <input type='text' name='name' id='name' maxlength="50" /> <br>
    <label for='email' >Indirizzo mail:</label>
    <input type='text' name='email' id='email' maxlength="50" />
     <br>
    <label for='username' >UserName*:</label>
    <input type='text' name='username' id='username' maxlength="50" />
     <br>
    <label for='password' >Password*:</label>
    <input type='password' name='password' id='password' maxlength="50" />
    <br>
    <input type='submit' name='Submit' value='Submit' />

    </fieldset>
    </form>
    </body>
    </html>

当我访问时localhost:5000/registrazione,我收到错误消息。我究竟做错了什么?


问题答案:

这是因为在定义路由时仅允许POST请求。

当你/registrazione在浏览器中访问时,它将首先执行GET请求。只有提交表单后,浏览器才会执行POST。因此,对于像你这样的自我提交表单,你需要同时处理两者。

使用

@app.route('/registrazione', methods=['GET', 'POST']) 

应该管用。



 类似资料:
  • 问题内容: 我刚刚开始学习Flask,并且我正在尝试创建一种允许POST方法的表单。 这是我的方法: 而我的: 加载表单(在收到GET时将其呈现)可以正常工作。但是,当我单击“ 提交”按钮时,出现一个。 为什么不显示“ Hello”? 问题答案: 除非存在输入错误,否则你的表单将提交给路由方法,除非你输入错误,否则应调整表单的属性以指向视图

  • 我正在尝试使用angularJs和$http发布一个表单。post方法。但每当我执行此函数时,它都会给我以下错误:加载资源失败:服务器响应状态为405(不允许使用方法),我不知道该怎么办。(Im使用visual studio 2015)

  • 我试图用jQuery做一个POST请求,但是我得到了一个错误405(不允许使用方法),我正在使用Laravel 5 这是我的代码: jQuery 超文本标记语言 控制器 JQuery错误http://localhost/laravel5.1/public/empresas/eliminar/5405(不允许方法)。 url值为 数据值是 如果我更改为request它工作正常,但我想做一个post请

  • 我有Laravel 5.4和VueJs应用程序。当我在Localhost中运行它时,它已经工作了,但是现在。我把主机放在一台服务器上,它会给出错误信息 这是我在VueJS的POST请求 这是api.php

  • 问题内容: 尝试提交请求时出现此错误。 这是我的烧瓶代码。 还有我的index.html 编辑..我完整的烧瓶代码: 问题答案: 您正在发布到该函数,而您的函数侦听 另一条路线 ;它被注册为仅收听,而不是: 该路由不接受,默认情况下仅接受,并且被允许。 相应地调整表格: 考虑到瓶并 不会 重新加载源,除非你将调试:

  • 问题内容: 我正在编写一个Android 2.2应用程序,该应用程序将JSON严格性过帐到ReSTfull Web服务。 Fiddler对Web服务的调用具有与预期相同的Json返回,而对ASPX Web应用程序具有与预期的相同Json返回。 当我查看服务器日志时,可以看到服务器使用307重定向响应初始POST动词,然后立即响应GET和405错误。 Fiddler和aspx应用程序记录一个307重