Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Request.args没有所有表单数据_Python_Forms_Flask - Fatal编程技术网

Python Request.args没有所有表单数据

Python Request.args没有所有表单数据,python,forms,flask,Python,Forms,Flask,我正试图提交一份申请表。它有3个命名组: csrf令牌 问题操作,是两个按钮之一 问题类型,是三个按钮之一 这是我的表格代码: <form method="get" action="{{url_for('connectivity.homeBase')}}"> <input type="hidden" name="csrf_token" value="{{ csrf_token() }}" /> <div class="column" style="width:4

我正试图提交一份申请表。它有3个命名组:

  • csrf令牌
  • 问题操作,是两个按钮之一
  • 问题类型,是三个按钮之一
这是我的表格代码:

<form method="get" action="{{url_for('connectivity.homeBase')}}">
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
<div class="column" style="width:48%; margin-left:1%; margin-right:1%;">
    <div class="columnContainer" style="text-align:center;">
        <div class="buttonWrapper" style="width:100%; margin:5px;">
            <button class="submitButton issueAction" id="newIssue" name="issueAction" value="newIssue" type="button" style="width:145px; height:75px; text-align:center;">New</button>
        </div>
    </div>
</div>
<div class="column" style="width:48%; margin-left:1%; margin-right:1%;">
    <div class="columnContainer" style="text-align:center;">
        <div class="buttonWrapper" style="width:100%; margin:5px;">
            <button class="submitButton issueAction" id="updateIssue" name="issueAction" value="updateIssue" type="button" style="width:145px; height:75px; text-align:center;">Update</button>
        </div>
    </div>
</div>
<div style="width:100%; height:25px; display:block; clear:both;">
</div>
<h3>Is this a partner outage, partner maintenance, or company outage?</h3>
<hr>
<div class="column" style="width:31%; margin-left:1%; margin-right:1%;">
    <div class="columnContainer" style="text-align:center;">
        <div class="buttonWrapper" style="width:100%; margin:5px;">
            <button class="submitButton issueType" id="partnerOutage" name="issueType" value="partnerOutage" type="button" style="width:145px;; height:75px; text-align:center;">Partner Outage</button>
        </div>
    </div>
</div>
<div class="column" style="width:31%; margin-left:1%; margin-right:1%;">
    <div class="columnContainer" style="text-align:center;">
        <div class="buttonWrapper" style="width:100%; margin:5px;">
            <button class="submitButton issueType" id="partnerMaintenance" name="issueType" value="partnerMaintenance" type="button" style="width:145px; height:75px; text-align:center;">Partner Maintenance</button>
        </div>
    </div>
</div>
<div class="column" style="width:31%; margin-left:1%; margin-right:1%;">
    <div class="columnContainer" style="text-align:center;">
        <div class="buttonWrapper" style="width:100%; margin:5px;">
            <button class="submitButton issueType" id="companyOutage" name="issueType" value="companyOutage" type="button" style="width:145px; height:75px; text-align:center;">company Outage</button>
        </div>
    </div>
</div>
<div style="width:100%; height:25px; display:block; clear:both;">
</div>
<h3 id="submitLabel">You must select an action and issue type to proceed.</h3>
<hr>
<div class="buttonWrapper" style="width:100%; margin:5px;" type="submit">
    <button class="submitButton" style="width:145px; height:75px; text-align:center;">GO!</button>
</div>
表单中唯一打印的项目是CSRF令牌。我已经正确地命名了我的按钮组,给每个按钮赋予了一个唯一的值属性,并将它们全部包装在一个表单标签中

为什么Flask只从客户端接收CSRF令牌?根据我的理解,我应该能够在请求中看到issueAction和issueType,但它不在那里


我可能会使用WTForm编写代码并解决此问题,但在我放弃之前,我想了解此方法存在缺陷的原因。

您似乎试图使用
,好像它是一个复选框,或者可能是复选框,我认为它不会正常工作。例如,当用户单击其中一个按钮时,它如何直观地指示他们选择了哪个操作?这就是单选按钮和复选框的用途。当你点击一个普通按钮时,它只是…被点击。但是,除非它有
type=“submit”
(默认设置)或附加了一些JavaScript事件处理程序,否则不会发生任何事情。我不认为按钮“值”是以表单形式提交的,除非它是提交按钮本身


如果您坚持认为可以使用一些JavaScript,但是使用适当的表单元素类型可能更好。

您似乎试图使用
,好像它是一个复选框,或者可能是复选框,我认为这不会正常工作。例如,当用户单击其中一个按钮时,它如何直观地指示他们选择了哪个操作?这就是单选按钮和复选框的用途。当你点击一个普通按钮时,它只是…被点击。但是,除非它有
type=“submit”
(默认设置)或附加了一些JavaScript事件处理程序,否则不会发生任何事情。我不认为按钮“值”是以表单形式提交的,除非它是提交按钮本身


如果您坚持认为可以使用一些JavaScript,但最好使用适当的表单元素类型。

我确实有一个结束表单标记,我的复制粘贴肯定错过了,我找不到编辑我的问题的地方。你试图发送的输入,因为我只能看到一堆按钮。我确实有一个结束表单标签,我的复制粘贴肯定错过了它,我找不到编辑我的问题的地方。你试图发送的输入在哪里,因为我只能看到一堆按钮。单击后,我正在使用JS更改样式。我想我可以切换到单选按钮,但我不明白为什么表单中的按钮不能正确发布。我会改变我的方法,谢谢。这不是HTML表单中按钮的工作方式。除了submit按钮(其中您可以有多个按钮,因此根据单击的按钮在服务器端采取不同的操作)之外,用户无法通过单击按钮向表单输入提供“值”。使用JavaScript之后所做的任何样式都超出了HTML的范围。您还可以通过多种方式设置单选按钮的样式。例如,如果您已经在使用JS处理按钮点击,您可以使用它来更新表单的值。没错,我可能会使用隐藏字段来同步并发送到服务器。我反对传统单选按钮的原因是我很难让单选按钮看起来像普通按钮。我想要一个里面有标签的大矩形,而不是一个旁边有标签的圆形单选按钮。我最终使用了隐藏的输入字段来保持表单标签中的所有内容同步并正确发送到服务器。这使我可以使用简单的按钮样式而不是复杂的单选按钮样式来实现同样的效果,我只需要几个jquery事件处理程序就可以了。我正在使用JS在点击后更改样式。我想我可以切换到单选按钮,但我不明白为什么表单中的按钮不能正确发布。我会改变我的方法,谢谢。这不是HTML表单中按钮的工作方式。除了submit按钮(其中您可以有多个按钮,因此根据单击的按钮在服务器端采取不同的操作)之外,用户无法通过单击按钮向表单输入提供“值”。使用JavaScript之后所做的任何样式都超出了HTML的范围。您还可以通过多种方式设置单选按钮的样式。例如,如果您已经在使用JS处理按钮点击,您可以使用它来更新表单的值。没错,我可能会使用隐藏字段来同步并发送到服务器。我反对传统单选按钮的原因是我很难让单选按钮看起来像普通按钮。我想要一个里面有标签的大矩形,而不是一个旁边有标签的圆形单选按钮。我最终使用了隐藏的输入字段来保持表单标签中的所有内容同步并正确发送到服务器。这使我能够使用简单的按钮样式而不是复杂的单选按钮样式来实现相同的感觉,并且我只需要几个jquery事件处理程序就可以让它工作。
@bp.route('/homeBase', methods=('GET', 'POST'))
def homeBase():
    print(request.args)
    return render_template('connectivity/homeBase.html')