【问题标题】:problems with obtaining data from an html page to a function for loading data into the database将数据从 html 页面获取到用于将数据加载到数据库中的函数的问题
【发布时间】:2021-05-12 12:54:47
【问题描述】:

我想获取填充表格的值,并且在输入的情况下,还需要手动输入的值。

@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
  • 学生 ID = 1

当我得到时

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

【问题讨论】:

    标签: python html flask jinja2 flask-sqlalchemy


    【解决方案1】:

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

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

    
    <input attributes />
    
    

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

    【讨论】:

    • 您好,感谢您的回复。我修复了您向我报告的问题,但我仍然无法获得输入中提供的数据。我认为“信息”、“书面”、“口头”参数中的 url_for 存在错误。例如,“书面 = 书面”似乎不起作用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 2014-05-13
    相关资源
    最近更新 更多