从html页面向函数获取数据以将数据加载到数据库时出现问题

2024-05-17 04:33:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我想得到这些值​​用于填充表格,如果是输入,还包括值​​手动输入

@app.route ('/checkResult', methods = ['POST', 'GET'])
def control Outcomes ():
"" "Function to render the page of the results insertion" ""
    language = request.args.get ("language")
    level = request.args.get ("level")
    session = request.args.get ("session")
    info = request.args.get ("info") or None
    written = request.args.get ("written") or None
    oral = request.args.get ("oral") or None
    if language is None or level is None or session is None:
        sessions = app.model.getSessions ()
        return render_template ('loadingElements.html', login = loginStr (), sessions = sessions, warning = 'Select valid language, level and / or session', category = app.category)
    else:
        resultList= app.model.getResults (language, level, session)
        app.sessionID = session
        return render_template ('editResults.html', login = loginStr (), resultList= resultList, session = app.sessionID, category = app.category)

这是初始化页面的函数,它可以正常工作:它正确地填充表。 随后,在查看表格后,如果结果不存在,将显示一个文本字符串,允许您输入数字。然而,一旦我点击“注册”,我就不能得到所有的值​​在表行中

<table class = "table table-striped">
    <thead>
        <tr>
            <th class = "right"> # </th>
            <th align = "center"> IdGia </th>
            <th align = "center"> Serial number </th>
            <th align = "center"> Name </th>
            <th align = "center"> Surname </th>
            <th align = "center"> Session Id </th>
            <th align = "center"> Language </th>
            <th align = "center"> Level </th>
            <th align = "center"> Computerized Result </th>
            <th align = "center"> Written Result </th>
            <th align = "center"> Oral Result </th>
            <th align = "center"> Confirm insertion </th>
        </tr>
    </thead>
<tbody>

    {% - for attribute in listEsiti%}
        <tr>
            <td class = "right"> {{ns.num}} {% set ns.num = ns.num + 1%} </td>
            <td align = "center"> {{attribute [0]}} </td>
            {% if attribute [1] == None%}
                <td align = "center"> </td>
            {% else%}
                <td align = "center"> {{attribute [1]}} </td>
            {% endif%}
                <td align = "center"> {{attribute [2]}} </td>
            <td align = "center"> {{attribute [3]}} </td>
            <td align = "center"> {{session}} </td>
            <td align = "center"> {{attribute [4]}} </td>
            <td align = "center"> {{attribute [5]}} </td>
            {% if attribute [6] is none%}
                <td align = "center"> <input type = "int" placeholder = "100" id = "info" name = "info"> </td> <br/> <br/>
            {% else%}
                <td align = "center"> {{attribute [6]}} </td>
            {% endif%}
            {% if attribute [7] is none%}
                <td align = "center"> <input type = "int" placeholder = "100" id = "written" name = "written"> </td> <br/> <br/>
            {% else%}
                <td align = "center"> {{attribute [7]}} </td>
            {% endif%}
            {% if attribute [8] is none%}
                <td align = "center"> <input type = "int" placeholder = "100" id = "oral" name = "oral"> </td> <br/> <br/>
            {% else%}
                <td align = "center"> {{attribute [8]}} </td>
            {% endif%}
            <!-- <td align = "center"> <input class = "btn" type = "submit" value = "Record register"> </td> <br/> <br/> <-->
            <td align = "center"> <a href = "{{url_for ('InsertResult', idGia = attribute [0], language = attribute [4], level = attribute [5], info = attribute [6], written = written, oral = oral, session = session)}} "type =" submit "class =" btn btn-primary "> Register </td>
        </tr>
    {% endfor%}
    </tbody>
</table>

上面的一个是导致我出现问题的表格,而下面我报告了应该记录结果但不起作用的函数

    @ app.route ('/ insertResult', methods = ['POST', 'GET'])
def insert Results ():
    idGia = request.args.get ('idGia')
    language = request.args.get ("language")
    level = request.args.get ("level")
    info = request.args.get ("info") or None
    written = request.args.get ("written") or None
    oral = request.args.get ("oral") or None
    idPeriodoDid = request.args.get ("session") or None
    studentID = request.args.get (idGia)
    idPeriodoDid = sessionapp  #global
    msg = ''
    
    if not (written is None):
        percentage = written
        msg + = app.model.insertNewResult (language, level, written, written, percentage, studentID, idPeriodoDid, 1)
        
    if not (oral is None):
        percentage = oral
        msg + = app.model.insertNewResult (language, level, oral, oral, percentage, studentID, idPeriodoDid, 2)
        
    if not (info is None):
        percentage = info
        msg = app.model.insertNewResult (language, level, info, info, percentage, studentID, idPeriodoDid, 0)
        
    resultList= app.model.getEsitiInformatizzatoPerInsinsertion (language, level, idPeriodoDid)
    return render_template ('loadingReults2.html', login = loginStr (), resultList= listEsits, category = app.categoria, alert = msg)

在手动输入结果并按下“寄存器”后,我希望类似的结果

  • idGia=1234
  • 语言=英语
  • 级别=B2
  • 信息=70
  • 书面=60
  • 口头=90
  • idPeriodoDid=1
  • studentID=1

当我

  • idGia=1234
  • 语言=英语
  • 级别=B2
  • 信息=
  • 书面=
  • 口头=
  • idPeriodoDid=1
  • studentID=1

1条回答
网友
1楼 · 发布于 2024-05-17 04:33:55

首先,输入类型属性值[int]不是一个东西,而是使用数字或日期等

第二,你甚至没有关闭你的输入标签,像这样关闭它们


<input attributes />

这些是一些重要的标记,未关闭的标记可能会干扰其他标记,导致属性无法按预期工作

相关问题 更多 >