试图从带有烧瓶的HTML表单的POST请求数据中获取数据

时间:2020-06-30 10:37:58

标签: python html forms flask

我一直在使用python库烧瓶在网站后端上工作,但是每当我尝试从POST请求中获取表单数据(因为它需要安全发送)时,我总是收到405-不允许的方法错误。在提交用户的电子邮件和密码之后,这只是意味着将其发送到一个非常基本的html页面,上面带有他们的名称和电子邮件(使用代码进行解释更容易)。

python代码:

# reroutes user to login page html file
@app.route("/")
@app.route("/login", methods=["GET", "POST"])
def reroute_login():
    return flask.render_template("login.html")


# returns the login page html file
@app.route("/login", methods=["GET", "POST"])
def login():
    if flask.request.method == "POST":
        print("Reached")
        email = flask.request.form["email"]
        password = flask.request.form["password"]
        print(email, password)
        return flask.redirect(flask.url_for("user", usr=email))
    else:
        return flask.render_template("login.html")


@app.route("/<usr>")
def user(usr):
    return f"<h1>{usr}</h1>" # here is that very basic html page I mentioned but it won't reroute to this page

login.html:

<form action="#" method="post">
    <h1>Login</h1>
        
    <input type="text" name="email" placeholder="Email">
    <input type="password" name="password" placeholder="Password">
    <a href="#">Forgot Your Password</a>

    <input type="submit" class="button1" value="submit" />
</form>

请只知道我对Flask和整个后端Web开发人员来说还是很陌生,但是任何帮助都将不胜感激:)

1 个答案:

答案 0 :(得分:1)

尝试将login.html中的操作从#更改为/login

并且您已经定义了多个具有相同名称的路由。 删除第一个登录路径。