为了账号安全,请及时绑定邮箱和手机立即绑定

将一些数据发送到 script.py 并接收另一个数据以将其放入html中

将一些数据发送到 script.py 并接收另一个数据以将其放入html中

函数式编程 2022-08-11 20:24:22
我正在烧瓶中制作一个Web应用程序。我无法正确执行我的想法。在这种情况下,我想从HTML页面上的表单接收一些数据,并将其发送到另一个 script.py 文件。然后这个 script.py 将做一些数学运算,并返回我和几个字符串变量。我想像数学结果一样接收它们,并将它们单独放在HTML页面上(如{{ var1 }})。Hhere是一些代码,以便您大致了解现在的情况:routes.py:import some script as spst...@app.route('/calculate')def calc_func():    data1 = request.form['form1input']   # timepicker input like 07:30    data2 = request.form['form2input']   # string 'hello'    data3 = request.form['form3input']   # int 55    fdata = data1[0:2]                   # 07    fdata = data1[3:5]                   # 30    fdata = data2                        # 'hello'    fdata = data3                        # 55    spst.mainclass.mainfunc(fdata1, fdata2, fdata3, fdata4)    # how to catch results from function above???    return render_template('index.html', output_text1, output_text2, output_text3)somescript.py:class mainclass(object):    def mainfunc(fdata1, fdata2, fdata3, fdata4):        localvar1 = int(fdata1)        localvar2 = int(fdata2)        localvar3 = str(fdata3)        localvar4 = int(fdata4)        # there is some maths and other actions        output_text1 = str(result1)        output_text2 = str(result2)        output_text3 = str(result3)        return output_text1, output_text2, output_text3
查看完整描述

2 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

首先,您需要正确设置参数,因为在函数中没有定义任何定义为fdata1,fdata2,fdata3的内容,之后您可以在 somescripyt.py 文件中返回字典,如下所示:


return {'output_var1': output_text1, 'output_var2': output_text2, 

        'output_var3': output_text3}

然后在您的 routes.py 文件中,只需传递返回的结果,如下所示:calc_func()


def calc_func():

    data1 = request.form['form1input']   # timepicker input like 07:30

    data2 = request.form['form2input']   # string 'hello'

    data3 = request.form['form3input']   # int 55

    fdata = data1[0:2]                   # 07

    fdata = data1[3:5]                   # 30

    fdata = data2                        # 'hello'

    fdata = data3                        # 55


    result = spst.mainclass.mainfunc(fdata1, fdata2, fdata3, fdata4)

    return render_template('index.html', result=result)

然后在你的索引中.html你可以在Jinja中使用它,如下所示:


<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>Example</title>

</head>

<body>

<div>

    {% if result %}

        {% for obj in result.keys() %}

            {{ result[obj] }}

        {% endfor %}

    {% endif %}

</div>

</body>

</html>


查看完整回答
反对 回复 2022-08-11
?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

您必须将函数的返回值分配给变量,如下所示:


(output_text1, output_text2, output_text3) = spst.mainclass.mainfunc(fdata1, fdata2, fdata3, fdata4)

# how to catch results from function above???

return render_template('index.html', output_text1, output_text2, output_text3)

右?因为 mainclass/ mainfunc 中的那些名称不会从函数调用中执行。该函数返回 3 个值,您必须将这些值分配给某些内容才能使用它们。


查看完整回答
反对 回复 2022-08-11
  • 2 回答
  • 0 关注
  • 83 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信