Python 使用Flask处理Twitter引导事件

Python 使用Flask处理Twitter引导事件,python,twitter-bootstrap,flask,Python,Twitter Bootstrap,Flask,我在web应用程序上有一组Twitter引导按钮,我需要将选择传递给Flask,我不想使用提交按钮 <div id="radios1" class="btn-group view-opt-btn-group" data-toggle="buttons-radio"> <button type="button" class="btn active" name="choice1" value="A">A</button> <button ty

我在web应用程序上有一组Twitter引导按钮,我需要将选择传递给Flask,我不想使用提交按钮

<div id="radios1" class="btn-group view-opt-btn-group" data-toggle="buttons-radio">
    <button type="button" class="btn active" name="choice1" value="A">A</button>
    <button type="button" class="btn" name="choice1" value="B">B</button>
    <button type="button" class="btn" name="choice1" value="C">C</button>
    <button type="button" class="btn" name="choice1" value="D">D</button>
    <button type="button" class="btn" name="choice1" value="E">E</button>
</div>

A.
B
C
D
E
Twitter引导会自动更新class=“btn active”设置,具体取决于单击。但我如何将所选按钮传递到烧瓶?我希望单击按钮调用flask应用程序中的函数(python函数)并更新特定设置,但我不希望每次单击都重新加载整个网页

我见过一些具有隐藏按钮的解决方案,其中包含更新隐藏按钮值的jquery函数,但该选择如何传递到flask:

<div id="radios1" class="btn-group view-opt-btn-group" data-toggle="buttons-radio">
    <button type="button" class="btn active" name="choice1" value="A">A</button>
    <button type="button" class="btn" name="choice1" value="B">B</button>
    <button type="button" class="btn" name="choice1" value="C">C</button>
    <button type="button" class="btn" name="choice1" value="D">D</button>
    <button type="button" class="btn" name="choice1" value="E">E</button>
    <input type="hidden" name="choice1" value={{request.form['choice1']}} />
</div>

<script type="text/jscript">
    $("body").find("#radios1").children().each(function () {
        $(this).bind('click', function () {
            $("input[name=choice1]").val(this.value);
            });
    });
</script>

A.
B
C
D
E
$(“body”).find(#radios1”).children().each(函数(){
$(this).bind('click',函数(){
$(“input[name=choice1]”)val(this.value);
});
});

谢谢

如果要向Flask发送AJAX请求,必须执行以下操作:

<div id="radios1" class="btn-group view-opt-btn-group" data-toggle="buttons-radio">
    <button type="button" class="btn active" name="choice1" value="A">A</button>
    <button type="button" class="btn" name="choice1" value="B">B</button>
    <button type="button" class="btn" name="choice1" value="C">C</button>
    <button type="button" class="btn" name="choice1" value="D">D</button>
    <button type="button" class="btn" name="choice1" value="E">E</button>
    <input type="hidden" name="choice1" value={{request.form['choice1']}} />
</div>

<script type="text/jscript">
    $("#radios button").click(function() {
        $.post("/your_url_mapped_in_flask", { choice1: $(this).val() } );
    });
</script>
@app.route("/your_url_mapped_in_flask")
def my_action():
   choice = request.form['choice1']
   # Do whatever you want to do with the vble choice
我认为它们是最基本的。您还可以从服务器返回一条成功消息,并对其进行处理以在视图中显示。或者,您可以使用GET请求和
GET
函数来实现这一点,但是必须使用
request.args.GET
而不是
request.form
来恢复参数

如果我的帖子不够清晰,您也可以查看Jquery的
$.get()
$.post()
$.getJSON()
函数:

  • 获取
  • post
  • getJSON

你知道什么是AJAX吗?确切地说,但是有没有一个通过Flask处理所选按钮的好例子?当按钮的状态发生变化时,只需从Javascript发出HTTP请求(如果使用Javascript框架,这会非常简单)。然后在你的flask应用程序中为这个请求编写一个处理程序,并执行你想做的处理。当你使用JQuery时,看看
get
post
函数。Twitter引导程序没有直接传递按钮点击的能力,这似乎很奇怪。为什么我必须使用隐藏按钮和jquery,这似乎是一个黑客解决方案。