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

我正在烧瓶中制作一个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


函数式编程
浏览 85回答 2
2回答

汪汪一只猫

首先,您需要正确设置参数,因为在函数中没有定义任何定义为fdata1,fdata2,fdata3的内容,之后您可以在 somescripyt.py 文件中返回字典,如下所示:return {'output_var1': output_text1, 'output_var2': output_text2,&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; 'output_var3': output_text3}然后在您的 routes.py 文件中,只需传递返回的结果,如下所示:calc_func()def calc_func():&nbsp; &nbsp; data1 = request.form['form1input']&nbsp; &nbsp;# timepicker input like 07:30&nbsp; &nbsp; data2 = request.form['form2input']&nbsp; &nbsp;# string 'hello'&nbsp; &nbsp; data3 = request.form['form3input']&nbsp; &nbsp;# int 55&nbsp; &nbsp; fdata = data1[0:2]&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# 07&nbsp; &nbsp; fdata = data1[3:5]&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;# 30&nbsp; &nbsp; fdata = data2&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # 'hello'&nbsp; &nbsp; fdata = data3&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # 55&nbsp; &nbsp; result = spst.mainclass.mainfunc(fdata1, fdata2, fdata3, fdata4)&nbsp; &nbsp; return render_template('index.html', result=result)然后在你的索引中.html你可以在Jinja中使用它,如下所示:<!DOCTYPE html><html><head>&nbsp; &nbsp; <meta charset="UTF-8">&nbsp; &nbsp; <title>Example</title></head><body><div>&nbsp; &nbsp; {% if result %}&nbsp; &nbsp; &nbsp; &nbsp; {% for obj in result.keys() %}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {{ result[obj] }}&nbsp; &nbsp; &nbsp; &nbsp; {% endfor %}&nbsp; &nbsp; {% endif %}</div></body></html>

Smart猫小萌

您必须将函数的返回值分配给变量,如下所示:(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 个值,您必须将这些值分配给某些内容才能使用它们。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python