将变量从HTML传递到Python / Flask

时间:2017-01-27 01:43:02

标签: python html flask

让我再试一次。我想在我的HTML表单中输入一个变量来提交,到目前为止还没有阅读此处的链接How to display a variable in HTML我尝试了以下代码,它位于main.html

<form> Asset Tag:<br> <input type="text" name="Asset Tag"><br> <input type="submit" value="Submit"> <form action="{{ asset_tag }}" method="get"> </form>

然后我有一个像这样的python脚本,

from flask import Flask, render_template
app = Flask('server')

@app.route('/py')
def server():
    return render_template('main.html')
#API URL
JSS_API = 'https://apiresource.com'

#Pre-Defined username and password
username = 'username'
password = 'password'

#Ask User for the Asset tag
asset_tag = {{ }}

在输入资产标签之后,它只搜索JSON文件以进行匹配,其余部分无关紧要,因此我没有包含下一部分脚本。

所以Flask渲染我的HTML就好了,我可以提交一个值,但它没有被传递回脚本,这是有意义的,因为我正在做与我提供的链接相反,但我只是想不到它是如何完成的。有什么建议吗?

1 个答案:

答案 0 :(得分:4)

您在下面列出了一些问题。总的来说,前端将变量传递给后端,只是变量只能通过传递数据的路径中request对象访问< / em>的

  • 我不确定你为什么'#'嵌套在<form>这里,但你要删除内部的,因为它没有做任何事情。

    < / LI>
  • 您希望设置表单,以便在提交时将数据发布到后端。如果您未指定<form>,则会将您当前正在查看的同一页面发布到同一页面。

    action
  • 您需要设置路由以接受POST请求,以便它可以从您页面上的表单接收数据。有关HTTP方法的更多信息,请参阅here

    <form method="POST">
        Asset Tag:<br>
        <input type="text" name="tag"><br>
        <input type="submit" value="Submit">
    </form>
    
  • 在您的路线中,您需要检查它是否是GET请求(并加载正常页面)或是否是POST(表单数据已发送,因此我们应该使用它)

    @app.route('/py', methods=['GET', 'POST'])