Python Flask:选中单选选项的Post方法请求错误

Python Flask:选中单选选项的Post方法请求错误,python,post,flask,radio-button,default-value,Python,Post,Flask,Radio Button,Default Value,假设我的html脚本中有两个单选按钮,其中一个默认选中: <form action="" method="post"> <div class="radio-option checked"> <input type="radio" name="radioName" value="val_1"/> </div> <div class="radio-option"> <input

假设我的html脚本中有两个单选按钮,其中一个默认选中:

<form action="" method="post">
    <div class="radio-option checked">
        <input type="radio" name="radioName" value="val_1"/>
    </div>
    <div class="radio-option">
        <input type="radio" name="radioName" value="val_2"/>
    </div>
    <div>
        <input type="submit" value="Confirm and continue"/>
    </div>
</form>
我如何在瓶子里处理这个? 如何设置可以发送到服务器的默认值?
您可以在烧瓶内进行检查。检查request.form是否有项或是否为空,并在这种情况下抛出错误。 了解其是否为空的一种简单方法是,例如:

if len(request.form) == 0:
    print('Error: The form is empty')
else:
    print('The form has data, we can proceed')
另一种方式是:

if 'radioName' not in request.form:
    print('Error: The form is empty')
    ...
但也许flask有更好的方法来做到这一点,或者在这些情况下有更好的实践可以遵循

另一方面,在您发布的html代码段中,默认情况下不会选中任何输入。 在div上有选中的css类,但在type=radio的输入中没有选中的属性

正确使用checked属性如下所示:

<form action="" method="post">
    <div class="radio-option checked">
        <input type="radio" name="radioName" value="val_1" checked/>
    </div>
    <div class="radio-option">
        <input type="radio" name="radioName" value="val_2"/>
    </div>
    <div>
        <input type="submit" value="Confirm and continue"/>
    </div>
</form>
这样,默认情况下将检查值为val_1的无线电输入,填充到服务器的字典

有关更多信息,请查看:

您还可以使用required属性避免向服务器发送空表单,以确保用户按预期填写表单

要了解更多信息,请执行以下操作:


我希望有帮助

尝试使用if not request.form.get'radioName'。在这种情况下,您能完整地发布视图函数吗?我无法重现您得到的行为。当错误发生时,您可以发布request.form对象中的内容吗?您可以检查request.form是否有项或其是否为空,并在这种情况下抛出错误。但是请记住,在您发布的html代码段中,默认情况下不会选中任何输入。在div上有checked类,但在输入中没有checked属性。例如:@saitam,我编辑了我的答案,添加了一段代码片段
<form action="" method="post">
    <div class="radio-option checked">
        <input type="radio" name="radioName" value="val_1" checked/>
    </div>
    <div class="radio-option">
        <input type="radio" name="radioName" value="val_2"/>
    </div>
    <div>
        <input type="submit" value="Confirm and continue"/>
    </div>
</form>