Javascript 将参数从网页传递到服务器(Flask)

Javascript 将参数从网页传递到服务器(Flask),javascript,python,html,flask,Javascript,Python,Html,Flask,我刚刚开始在前端代码中添加后端,我认为flask是一个很好的开始学习的框架 我遇到的问题之一是将信息提交到服务器进行处理。特别是在这里,我有一个单选按钮列表,我想向服务器发送一个列表,列出用户在点击submit时选中的所有单选按钮。然后服务器处理该信息并返回一个新页面 表格如下: <form action="{{ url_for('timeline') }}" method="post"> {% for each_tag in tags %} <div class="

我刚刚开始在前端代码中添加后端,我认为flask是一个很好的开始学习的框架

我遇到的问题之一是将信息提交到服务器进行处理。特别是在这里,我有一个单选按钮列表,我想向服务器发送一个列表,列出用户在点击submit时选中的所有单选按钮。然后服务器处理该信息并返回一个新页面

表格如下:

<form action="{{ url_for('timeline') }}" method="post">
   {% for each_tag in tags %}
  <div class="checkbox">
      <label>
        <input type="checkbox" name="channel[]" value="{{each}}" >
        {{each_tag}} 
      </label>
  </div>    
{% endfor %} 

   <button type="submit"> submit </button>
</form>

我不确定信息是如何来回传递的。我可以将服务器信息发送到html模板,我想,一旦我了解了这个示例并了解了信息是如何传递到另一个方向的,我就可以开始做一些有趣的事情了。=)

用后面的方括号(
“channel[]”
)命名复选框是PHP的事情,Flask不需要这样做

只需在所有复选框中使用相同的名称:

<form action="{{ url_for('timeline') }}" method="post">
   {% for each_tag in tags %}
    <input type="checkbox" name="channel" value="{{each}}" >
   {% endfor %} 
    <button type="submit"> submit </button>
</form>

用后面的方括号(
“channel[]”“
)命名复选框是PHP的事情,Flask不需要这样做

只需在所有复选框中使用相同的名称:

<form action="{{ url_for('timeline') }}" method="post">
   {% for each_tag in tags %}
    <input type="checkbox" name="channel" value="{{each}}" >
   {% endfor %} 
    <button type="submit"> submit </button>
</form>

您可能想考虑是否正在执行表单。它很容易使用,并且有很好的助手,比如表单验证。您可以看到它在使用中的一个示例。您可能需要考虑是否正在执行表单。它很容易使用,并且有很好的助手,比如表单验证。您可以在中看到它的使用示例。太棒了,谢谢!你能分享一下WTForms是如何关联的吗?我在搜索中看到了很多,但这似乎是一个太重的解决方案。Flask-WTF/WTForms并不重,它们大大简化了表单验证。如果你只是有一堆复选框,验证的方法就不多了,但是对于更复杂的表单,它会为你节省很多时间。好的,我一定会研究它们。谢谢这看起来是一个很好的解决方案,但是当它们只是获取参数时又如何呢?实际上,request.args和request.form有何不同?非常感谢!你能分享一下WTForms是如何关联的吗?我在搜索中看到了很多,但这似乎是一个太重的解决方案。Flask-WTF/WTForms并不重,它们大大简化了表单验证。如果你只是有一堆复选框,验证的方法就不多了,但是对于更复杂的表单,它会为你节省很多时间。好的,我一定会研究它们。谢谢这看起来是一个很好的解决方案,但是当它们只是获取参数时又如何呢?实际上,request.args和request.form有何不同?
@app.route('/timeline.html', methods=['POST','GET'])
def timeline(request):
    checked = request.form.getlist('channel')

    # do something with checked array

    return render_template('timeline.html')