python - 如何从 html 脚本标签中获取数据到我的 python 函数中?
问题描述
我正在尝试将我存储在我的 html 文件中的脚本标记内的数据获取到我的 python 文件中,以便我可以在 python 函数中使用它,有谁知道我该如何实现这一点?这是我的html代码:
<textarea id="rendezook" class="rendezook"></textarea>
<button onclick="get_text();">Valider</button>
<script>
function get_text() {
var x = document.getElementById("rendezook")
location.href = "/validate_comment?rendezook=" + encodeURIComponent(x.value);
console.log(x.value)
}
</script>
然后这是我的python文件:
@app.route('/validate_comment')
def validate_comment(item_id=None):
print("test")
print(request.args.get("rendezook"))
print("test2")
return redirect(url_for('msr_edit', item_id=72))
test 和 test2 没有被打印,所以它没有进入函数。
解决方案
最简单的方法是使用通过 GET 请求提交的表单:
<form action="/validate_comment">
<textarea name="rendezook" class="rendezook"></textarea>
<button type="submit">Valider</button>
</form>
这将产生一个类似的 URL /validate_comment?rendezook=some_value_here
,因此您可以通过request.args
以下方式访问它(看起来您正在使用 Flask):
@app.route('/validate_comment')
def validate_comment():
print("yeet", request.args.get("rendezook"))
return redirect(url_for('msr_edit', item_id=72))
根据评论,如果您由于某种原因无法使用表格,那么:
<textarea id="rendezook" class="rendezook"></textarea>
<button onclick="test()">Valider</button>
<script>
function test() {
var x = document.getElementById("rendezook");
location.href = "/validate_comment?rendezook=" + encodeURIComponent(x.value);
}
</script>
编辑 2
这是一个可证明有效的最小示例:)
from flask import request, Flask
app = Flask(__name__)
@app.route("/validate_comment")
def validate_comment(item_id=None):
x = request.args.get("rendezook")
return f"you said {x}"
@app.route("/")
def index():
return """
<textarea id="rendezook" class="rendezook"></textarea>
<button onclick="get_text();">Valider</button>
<script>
function get_text() {
var x = document.getElementById("rendezook")
location.href = "/validate_comment?rendezook=" + encodeURIComponent(x.value);
console.log(x.value)
}
</script>
"""
if __name__ == "__main__":
app.run()
推荐阅读
- android - React Native Webview - 未定义不是函数
- java - 当我运行 Codenameone 程序时,模拟器中没有显示按钮
- javascript - Foundation 的 Magellan 无法使用固定的顶栏
- c# - Visual Studio 缺少数据库连接向导中的 Microsoft.Ace.OLEDB.16.0
- python - 如何应用二进制掩码和 STFT 来生成音频文件?
- php - get_header 和 get_footer 如何在不包含任何外部文件的情况下工作?
- vba - 为多个供应商从县级扩展邮政编码
- spring-boot - 带有 Spring Boot 的 MyBatis 光标
- sas - worddate 格式的 SAS Char 回溯到日期
- google-app-maker - 应用制作工具查询多个值并分配给另一个值