【问题标题】:Pass var value from HTML to python将 var 值从 HTML 传递到 python
【发布时间】:2020-05-03 09:26:37
【问题描述】:

我正在使用 python3,我有这个 HTMl,它创建了从 python 列表中获取的按钮:

</style>
</head>
<body>
<ul>
{% for thing in value %}
<form method="get" action="/loader" value="submit">
  <button class="button button">{{ thing }}</button>
</form>
{% endfor %}
</ul>
</body>
</html>

我的python代码:

@app.route("/test", methods=["GET"])
def test():
    a = ["a1","a2"]
    return render_template('sbutton.html', value=a)

@app.route("/loader", methods=["GET"])
def loader():
    data = request.args.get()
    print(data)
    return render_template('loader.html', value=password)

所以我会在http://localhost/test 网站上看到按钮 a1 和 a2 当我按下其中一个时,我将重定向到 /loader,这是我的 python 代码中到另一个 html 的路由。

我希望当我按下按钮时,例如a1,我会将此信息返回给我的 python 在loader 函数内。

我试过&lt;form method="get" action="/loader" value="submit"&gt; 添加了value="submit,但我在print(data)下没有得到任何东西

我只需要知道客户端在我的代码中重定向到/loader 时单击了哪个按钮。 我想将此值保留为我的 python 中的 var。

谢谢

【问题讨论】:

  • 你可以在这里查看。也许这可以帮助你[点击这里](stackoverflow.com/questions/53057621/…)
  • 不,他正试图做相反的事情,我不想使用 django 但谢谢。我确定我的 HTML 是错误的。

标签: python html forms


【解决方案1】:

data = request.args.get() 应该在您要获取的确切参数上调用,例如get('username')。例如here。顺便说一句,数据是从 HTTP 传递的,这是传输值的协议,而不是 HTML,标记语言。如果您想要所有值,request.args 将返回一个字典,其中包含所有传递的 GET 参数的键值对。

【讨论】:

  • 如果我这样做 request.args 会得到 :` ImmutableMultiDict([])` ,我认为我的发送方式是错误的
  • 您必须使用其他东西从字典中获取项目。我相信request.args.items() 可能在这里工作
  • 感谢您的帮助,现在我得到了&lt;generator object MultiDict.items at 0x7fcffb3d9eb8&gt;
  • tedboy.github.io/flask/generated/generated/… 查看此处的文档,了解如何以您可以使用的格式检索它
  • 这与我的 HTMl 有关,我得到空响应。
【解决方案2】:

我解决了,我能够像这样捕获按钮值名称:

{% for thing in value %}
  <form method="get" action="/loader">
    <input type=hidden name="{{ thing }}">
    <button class="button button">{{ thing }}</button>
  </form>
{% endfor %}

我的代码重定向到:

@app.route("/loader", methods=["GET"])
def loader():
    data = dict(request.args)
    for key in data:
        print(key)
    return render_template('loader.html', value=password)

所以现在点击按钮后,我将值返回到我的 python /loader 函数 如果客户端按下 a1 按钮将在 python 中得到 a1。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 2019-10-13
    • 1970-01-01
    • 2020-11-11
    • 2018-10-06
    • 2017-09-06
    • 1970-01-01
    相关资源
    最近更新 更多