烧瓶不起作用。不允许使用方法405

时间:2020-08-25 10:25:51

标签: python flask

如果从一开始我就从“注册页面”开始工作,但是如果我使用“ int html”(指向“注册”页面的超链接),它将停止工作并打印(405方法不允许/请求的URL不允许使用该方法。 )。 这是我的python代码,除了运行和导入: 我使用python 3.8

app = Flask(__name__)

@app.route("/")
def main():
    return render_template("MainFacut.html")

@app.route("/register")
def register():
    return render_template("Register.html")

@app.route("/register",methods=["GET","POST"])
def settingData():
    FullName = request.form['fullname']
    Age = int(request.form['age'])
    try:
        Gender = request.form['Option']
    except Exception as ex:
        return render_template("Register.html",n = "Gender not selected")
    UserName = request.form['username']
    Email = request.form['email']
    Pass1 = request.form['password']
    Pass2 = request.form['password0']
    if Age < 13 or Age > 110:
        return render_template("Register.html",n = "Age not corresspond")
    if Email == "" or FullName == "" or Age == "":
        return render_template("Register.html", n = "Not completed spaces!")
    if Pass1 != Pass2:
        return render_template("Register.html",n = list_of_errors[3])
    if len(Pass1) < 6:
        return render_template("Register.html",n = "A password have atleast 6 characters")
    freespace = validate_existence(UserName)
    if freespace == 1:
        return render_template("Register.html",n = "User already exist!")
    create_NewUser(UserName,FullName,Age,Pass1,Email,"","","","","")
    return render_template("after.html",n = "succes")

@app.route("/login")
def login():
    return render_template("py.html")

@app.route('/login',methods=["GET","POST"])
def getingData():
    UserName = request.form['username']
    Password = request.form['password']
    step = validate(UserName,Password)
    if Password == "":
        return render_template('py.html', n=list_of_errors[2])
    if UserName == "":
        return render_template('py.html', n = list_of_errors[1])
    if step == 0:
        return render_template('py.html',n=list_of_errors[0])
    return render_template('after.html',n = 'Succes')

if (__name__ == "__main__"):
    app.run(debug=True)

当我使用“ / reg”时,我的烧瓶应用程序无法正常工作 这是使用的html:

    <div class="loginbox">
        <img src="{{url_for('static',filename = 'Logo_Appelle.png')}}" class="avatar">
        <h1>Create an account</h1>
        <h1>{{n}}</h1>
        <form name="APPelle" action="." method="POST">
            <div class="row">
            <div class="column" style="background-color:#060517;">
                <p>Full Name</p>
                <input type="text" name="fullname" placeholder="Enter Full Name"><br><br>
                <p>Age</p>
                <input type="text" name="age" placeholder="Enter Age"><br><br>
                <p>Gender</p>
                <input type="radio" name="Option" id="male" name="gender" value="male">
                <label for="male">Male</label>
                <input type="radio" name="Option" id="female" name="gender" value="female">
                <label for="female">Female</label><br><br>
                <button class="button">Register</button>
            </div>
            <div class="column" style="background-color:#03050d;">

                <p>Username</p>
                <input type="text" name="username" placeholder="Enter Username"><br><br>
                <p>Email</p>
                <input type="text" name="email" placeholder="Enter Email"><br><br>
                <p>Password</p>
                <input type="password" name="password" placeholder="Enter Password">
                <input type="password" name="password0" placeholder="Confirm Password"><br><br>

            </div>
                </div>


        </form>
    </div>
    </form>
</body>
</head>
</html

1 个答案:

答案 0 :(得分:0)

删除没有方法(POST和get)声明其路径冲突的路由。 方法名称应与路由路径相同

@app.route("/login")
def login():
    return render_template("py.html")

@app.route('/login',methods=["GET","POST"])
def getingData():
    UserName = request.form['username']
    Password = request.form['password']
    step = validate(UserName,Password)
    if Password == "":
    ....
    ....

应该是

@app.route('/login',methods=["GET","POST"])
def login():
    UserName = request.form['username']
    Password = request.form['password']
    step = validate(UserName,Password)
    if Password == "":
    ...
    ...