如何使用 PyScript 将布尔值从 HTML 解析为 Python

问题描述 投票:0回答:0

在 PyScript 应用程序中,我在我的

index.html
中提供了两个单选按钮, 允许用户决定各向同性高斯斑点的合成是否应该重叠(有效地通过切换
Scikit-Learn
cluster_std
值用于
make_blobs
方法)。

应用参考: https://24ec0d6b-0b55-49be-aeb7-a0046c41abf4.pyscriptapps.com/ea775901-75b9-406d-beac-944d26301b09/latest/

我目前无法将选择解析为 Python 布尔值(

True
False
) 并始终收到
True
值,无论单击哪个单选按钮。

尝试将

HTML
中的值定义为双引号、单引号或未引号,以及在不同的大小写(标题、上部、下部)之间切换,但运气不佳。 还查看了 SO 上的其他示例/问题,例如如何将布尔值从 javascript 传递给 python?

HTML 中相关部分的片段:

<div id="input" style="margin: 20px;">
  Should the clusters overlap: <br/>
  <input py-click="generate_blobs()" type="radio" id="true" name="overlaps" value="true">
  <label for="true"> True</label>
  <input py-click="generate_blobs()" type="radio" id="false" name="overlaps" value="false">
  <label for="false"> False</label>
</div>

同样适用于 Python 片段:

def generate_blobs():
    """Generate isotropic Gaussian blobs for clustering"""

    over_laps = js.document.getElementsByName("overlaps")
    for element in over_laps:
        if element.checked:
            overlap = bool(element.value)

            print(overlap, type(overlap))
            
            break
    paragraph = Element("Overlap")
    paragraph.write(f"overlaps: {overlap}")

    n_samples = 4_000  # if overlap else 2_000
    cluster_std = 1.5 if overlap else .4

    X, y = datasets.make_blobs(
            n_samples = n_samples,
            n_features = 2,
            centers = 5,
            cluster_std = cluster_std,
            shuffle = True,
        )

    return X, y

设置 False 选项的结果:

欢迎任何建议,因为我已经没有什么想法可以尝试了

javascript python python-3.x webassembly pyscript
© www.soinside.com 2019 - 2024. All rights reserved.