Flask: render_template с передачей объекта говорит "метод не разрешен" - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть динамическая таблица со студентами, основанная на блоке класса.То есть в таблице есть список учеников в каждом блоке периода.HTML-код, который динамически создает это,

    html += "<tr>"+
        "<td class='align-middle'><input type='checkbox' class='form-check' style='width:50px;height:50px;'></td>"+
        "<td class='align-middle'><input type='image' onclick='StudentClicked(\""+item.FirstName+"\",\""+item.LastName+"\",\""+item.Suffix+"\",\""+item.NickName+"\")' src="+path+" onError='StudentImageError("+i+")' id='studentimage"+i+"' height='100'></td>"+
        "<td class='align-middle'>"+item.FirstName +" "+item.LastName+"</td>"+
        "<td class='align-middle'></td>"+
        "<td class='align-middle'>0</td>" +
        "<td class='align-middle'>0</td>"+
        "</tr>"

Поэтому, когда пользователь щелкает изображение, вызывается StudentClicked.

    function StudentClicked(FirstName, LastName, Suffix, NickName){
        $.getJSON('/studentSelected', 
                {firstName: FirstName, lastName: LastName, suffix: Suffix, nickName: NickName},
                function(data){})
    }

Идея в том, что я хочу щелкнуть ссылку на изображение, и getJSON будет искать мой app.route ("/ studentSelected").Я выполню вызов базы данных с переменными, которые я передал этому маршруту, и создам объект.Я хочу передать этот объект на HTML-страницу.Вот код Python для app.route

@app.route('/studentSelected', methods=['GET','POST'])
def studentSelected():
    firstName = request.args.get('firstName', 0, type=str)
    lastName = request.args.get('lastName', 0, type=str)
    suffix = request.args.get('suffix', 0, type=str)
    nickName = request.args.get('nickName', 0, type=str)
    students = []    
    con, cur = ConnectToDatabase()

    SQL = "select * from students where FirstName = ? and LastName = ? and Suffix = ? and NickName = ?"
    entities = (firstName, lastName, suffix, nickName)
    student, cur = Execute(SQL, cur, entities)

    return render_template('studentcard.html', student=student)

В настоящее время я получаю «Метод не разрешен. Метод не разрешен для запрошенного URL».который я интерпретирую, потому что я не передаю правильный путь к моему маршруту.Но, как вы можете, я могу передать оба метода на мой маршрут.Зачем еще я получаю эту ошибку?studentcard.html существует в шаблонах папок.

Одно из предположений, которое у меня есть, заключается в том, что оператор return возвращает функциональность функции getJSON.

Какая стратегия лучше для такого типа процессов?Конечным результатом является нажатие на изображение для запуска app.route, вызова базы данных и перенаправления веб-приложения на новый маршрут для studentSelected и загрузки и запуска этой страницы.

содержимое studentcard.html

{% extends 'layout.html' %}

{% block body %}
<div class="container mt-3">
{% from "includes/_formhelpers.html" import render_field %}


</div>
{% endblock %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...