HTML 基于 python 变量的单选按钮输入类型的默认值

HTML default value fo radio button input type based on python variable

所以我正在制作一个 Flask 应用程序,用户可以在其中上传电子表格,然后可以在 html 页面上使用该电子表格的参数。一个参数是一个只能为 1、2 或 3 的值。用户可以通过选择具有这些选项的单选按钮来更改此值。

一切正常,但我希望单选按钮的默认值是用户上传的初始电子表格中的值。

我的想法是做这样的事情:

main.py

@app.route('/', methods=['GET','POST'])
def params_form():

    value = 2
    value_dict = {'1': 1==value, '2': 2==value, '3': 3==value}
    
    return render_template('home/sheet.html', value_dict)

sheet.html

<div>
    <input type="radio" id="n1" name="nyears" value=1 checked={{value_dict["1"]}}>
        <label for="n1"> 1 </label>

    <input type="radio" id="n2" name="nyears" value=2 checked={{value_dict["2"]}}>
        <label for="n2"> 2 </label>

    <input type="radio" id="n3" name="nyears" value=3 checked={{value_dict["3"]}}>
        <label for="n3"> 3 </label>
</div>

但不幸的是,任何使用 'checked' 属性都会选中该框(在本例中为编号 3,因为它是最后一个使用选中属性的框)。似乎拥有默认检查值的唯一方法是仅在一个输入行上使用检查属性。

任何帮助让它工作的人都将不胜感激 提前致谢!

您需要通过将其作为关键字传递来设置 render_template 中的变量名称:

@app.route('/', methods=['GET','POST'])
def params_form():

    value = 2
    value_dict = {'1': 1==value, '2': 2==value, '3': 3==value}
    
    return render_template('home/sheet.html', value_dict=value_dict)
<div>
    <input type="radio" id="n1" name="nyears" value=1  {{ 'checked' if value_dict["1"] else '' }} >
        <label for="n1"> 1 </label>

    <input type="radio" id="n2" name="nyears" value=2  {{ 'checked' if value_dict["2"] else '' }} >
        <label for="n2"> 2 </label>

    <input type="radio" id="n3" name="nyears" value=3  {{ 'checked' if value_dict["3"] else '' }} >
        <label for="n3"> 3 </label>
</div>