Отправка данных таблицы html в метод flask и получение информации из базы данных - PullRequest
0 голосов
/ 29 марта 2020

Я работал над мини-проектом в Flask, используя sqlite3 для БД. Проект о том, как обеспечить медицинскую документацию пациентов. У меня есть два вида: один для администратора, чтобы вставить новых пациентов и просмотреть их данные, а другой для пациентов, чтобы просмотреть их записи. Моя проблема в том, что, когда администратор вставляет нового пациента, имя и идентификатор этого конкретного пациента будут добавлены в динамическую таблицу c html, а также из списка пациентов в этой таблице, он может щелкнуть по конкретному пациенту. пациент для просмотра его / ее записей. Но я не могу отобразить часть записей о пациентах. Я получаю ошибку во время выполнения, которая говорит TypeError: Функция представления не вернула правильный ответ. Функция либо вернула None, либо завершилась без оператора возврата Вот шаблоны:

dyanmi c таблица с именем и идентификатором пациента:

 {% block content %}
    <form method="post" action="{{ url_for('custom') }}">
<table>
  <thead>
            <th>ID</th>
            <th>Name</th>
            <th>Age</th>
  </thead>

    {% for row in rows %}
    <tr>


                <td name="userid1"><a href="{{ url_for('custom') }}" >{{ row.Userid }}</a></td>
                <input type="hidden" id="id" name="userid1"  value=" {{ row.Userid }}"/>
                <td name="names1"><a href="{{ url_for('custom') }}" > {{row.Name}}</a></td>
                <input type="hidden" id='na' name="names1" value="{{row.Name}}" />
                <td> {{ row["Age"]}}</td>
            </tr>
         {% endfor %}
</table>
    <br><br>
    </form>``
{% endblock %}

страница записей о пациентах (просмотр ):

</div>
</div>
<div class="details" style="height:550px;" >
    <img src="static/images/bg2.png" style="width:250px;height:300px;margin-top:3%;">
    <div class="contentin">
      <p class="tit1"><b>{{ infos[1] }}</b></p>
      <b><p class="tit2">Age:&nbsp;&nbsp;<font style="color:black;">{{ infos[2] }}</font></p>
      <p class="tit2">Sex:&nbsp;&nbsp;<font style="color:black;">{{ infos[3] }}</font></p>
      <p class="tit2">Height:&nbsp;&nbsp;<font style="color:black;">{{ infos[4] }}</font></p>
      <p class="tit2">Weight:&nbsp;&nbsp;<font style="color:black;">{{ infos[5] }}</font></p>
       <p class="tit2">Sugar Level:&nbsp;&nbsp;<font style="color:black;">{{ infos[6] }}</font></p>
       <p class="tit2">BP Level:&nbsp;&nbsp;<font style="color:black;">{{ infos[7] }}</font></p>
       </b>
      <button class="btn" style="width:350px;"><font style="color:white;"><b>Download All Reports&nbsp;&nbsp;<i class="fa fa-download"></i></button>&nbsp;&nbsp;
<button class="btn" style="width:300px;">Share&nbsp;&nbsp;<i class="fa fa-share-alt"></i></b></font></button></center>

    </div>
</div>

мой Flask .py файл:

@app.route('/patientinfo')
def patientinfo():
    conn = sqlite3.connect('patients.db')
    conn.row_factory = sqlite3.Row

    c = conn.cursor()
    c.execute("select Userid,Name,Age from details")

    rows = c.fetchall()
    return render_template("patientinfo.html", rows=rows)


@app.route('/hospital', methods=['GET', 'POST'])
def custom():
    User_ID = request.form.get("userid1")
    Name = request.form.get("names1")
    conn = sqlite3.connect('patients.db')
    cul = conn.cursor()
    cul.execute('SELECT Userid, Name, Age, Sex, Height, Weight, Sugar, BP from details')
    pt = cul.fetchall()
    for pat in pt:
        if pat[0] == User_ID:
            if pat[1] == Name:
                return render_template("hospital.html", infos=pat)

1 Ответ

0 голосов
/ 29 марта 2020

Когда пользователь нажимает на ссылку в <td>, отправляется запрос GET. Это request.form.get("userid1") вернет None (как и request.form.get("names1")). Это if pat[0] == User_ID: никогда не будет правдой. Программа проваливается и не возвращает действительный ответ. Вот почему это происходит. Поскольку это данные пациента (и с точки зрения США), вам, вероятно, не следует отправлять идентификатор / имя в строке запроса ie запрос GET). Может быть, javascript должен быть введен. Потратьте некоторое время и обдумайте варианты, а именно. эта новая информация.

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