Как отобразить данные из разных таблиц на основе кнопки, которую пользователь выбирает в колбе? - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть две таблицы с именем admin и user, которые выглядят следующим образом.

table name: admin
name|id|password

table name: user
name|id|email|password

В моем html-файле есть две кнопки view user и view admin. Я хочу вернуть все содержимое таблицы admin при нажатии view admin и вернуть все содержимое таблицы user при нажатии view user.

Так выглядит мой HTML-файлкак

<a href="{{ url_for('view_credentials')}}"> <input type="submit"  name="submit_button" value="View Admin">

<a href="{{ url_for('view_credentials')}}"> <input type="submit"   name="submit_button" value="View Tutor">

    {% for item in output %}
    <tr>
        <td>{{item[0]}}</td>
        <td>{{item[1]}}</td>
        <td>{{item[2]}}</td>
    </tr>
    {% endfor %}

Вот так выглядит мой файл python


@app.route("/view_credentials", methods = ["POST", "GET"])
def view_credentials():

    if request.method == "GET":
        if request.form['submit_button'] == 'View Admin':
            output = db.execute('SELECT * FROM admin').fetchall()
            return render_template("adminDashboard.html", output=output)
        elif request.form['submit_button'] == 'View Tutor':
            output = db.execute('SELECT * FROM login_signup_tutor').fetchall()
            return render_template("adminDashboard.html", output=output)

Я получаю эту ошибку: HTTPException.wrap.<locals>.newcls: 400 Bad Request: KeyError: 'submit_button' Я новичок в фляге и пытаюсь понять вещи вокруг. Пожалуйста, дайте мне знать, где я ошибся и что я должен исправить. Спасибо.

1 Ответ

0 голосов
/ 07 ноября 2019

Обратите внимание, что вместо request.form [] используйте request.form.get (). Это не выдаст вам ошибку 404, если submit_button не существует.

Измените свой файл python на:

@app.route("/view_credentials", methods = ["POST", "GET"])
def view_credentials():

    if request.method == "GET":
        if request.form.get('submit_button') == 'View Admin':
            output = db.execute('SELECT * FROM admin').fetchall()
            return render_template("adminDashboard.html", output=output)
        elif request.form.get('submit_button') == 'View Tutor':
            output = db.execute('SELECT * FROM login_signup_tutor').fetchall()
            return render_template("adminDashboard.html", output=output)

После этого вы не получаете значение request.form.get ('submit_button'), затем измените значение submit_button на 'submit' и внесите аналогичные изменения в route.py, например: request.form.get ('submit').

Это сработало для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...