Python s Flask Ошибка 404 метода регистрации после регистрации - PullRequest
0 голосов
/ 13 июля 2020

Привет всем, я новичок в Flask, и я пишу эту программу, а функция регистрации не работает, и сообщение об ошибке мне действительно не очень помогает, поэтому вот код, ошибка и html вид, так что все будет действительно полезно. python код:

@app.route("/register", methods=["GET", "POST"])
def register():
    if request.method == "GET":
        return render_template("register.html")

    else:
        # check for username
        if not request.form.get("username"):
            return apology("Must provide valid username")

        #  check for valid password
        elif not request.form.get("password"):
            return apology("Must provide valid password")

        # check password matches
        elif not request.form.get("password") == request.form.get("password_confirmation"):
            return apology("Password doesn't match")

        hash = generate_password_hash(request.form.get("password"))
        new_user = db.execute("INSERT INTO users (username, hash) VALUES (:username, :hash)", username = request.form.get("username"), hash = hash)

        if not new_user:
            return apology("Username take")

        session["user_id"] = new_user

        flash("Welcome!")

        return redirect("/")

Html форма:

{% extends "layout.html" %}

{% block title %}
    register
{% endblock %}

{% block main %}
    <form action="/register" method="post">
        <div class="form-group">
            <input autocomplete="off" autofocus class="form-control" name="username" placeholder="Username" type="text">
        </div>
        <div class="form-group">
            <input class="form-control" name="password" placeholder="Password" type="password">
            <input name="password_confrimation" placeholder="Confirm Password" type="password">
        </div>
        <input type="submit">
    </form>
{% enblock %}

журналы и сообщение:

[2020-07-13T18:19:20.336Z]  "GET /templates/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"
[2020-07-13T18:19:21.732Z]  "GET /templates/register.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"
[2020-07-13T18:19:32.272Z]  "POST /register" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"
[2020-07-13T18:19:32.273Z]  "POST /register" Error (404): "Not found"

ПРИМЕЧАНИЕ: база данных уже подключена к файл db.

1 Ответ

0 голосов
/ 13 июля 2020

ВЫ неправильно указали password_confirmation в вашем вводном имени ваш код: -

<input name="password_confrimation" placeholder="Confirm Password" type="password">

Что это должно быть: -

<input name="password_confirmation" placeholder="Confirm Password" type="password">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...