为了账号安全,请及时绑定邮箱和手机立即绑定

如何访问选定的下拉菜单回烧瓶

如何访问选定的下拉菜单回烧瓶

阿晨1998 2022-10-08 10:14:16
我一直在尝试通过Flask单击按钮访问选定的下拉列表。基于我做了如下的建议之一应用程序.py    @app.route('/ra/connect',methods=['GET','POST'])    def connect_management():       user = (request.form['selected_class']).first()       return (str(user))应用程序.html              <select name="selected_class" class="form-control" id="all_classes">                  {% for o in all_classes %}                  <option  value="{{ o }}" selected>{{ o }}</option>                  {% endfor %}                 </select> 我需要使用选定的下拉选项并Flask通过单击按钮从 api 填充更多结果并将它们显示在countdown按钮下方的标记中。总而言之,我需要在Flask没有新选项卡的情况下将下拉值访问回 api。<button class="form-control" id="button" onclick="connect4()">Get gateways</button>                <p id="countdown"></p>我一直在TypeError: 'ImmutableMultiDict' object is not callable即使在遵循建议之后
查看完整描述

1 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

我无法通过您的代码得到您的错误。可能您收到不同代码的错误,但您没有显示可以确认它的完整错误消息。


要在HTML不重新加载页面的情况下更新您需要JavaScript或jQuery发送AJAX请求,获取响应并将其放入现有HTML


最小的工作示例:


from flask import Flask, request, render_template_string


app = Flask(__name__)


@app.route('/')

def index():

    return render_template_string('''<html>

<script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script>


<form action="/ra/connect" method="POST" id="form">

   <select name="selected_class" class="form-control" id="all_classes">

   {% for o in all_classes %}

      <option  value="{{ o }}" selected>{{ o }}</option>

   {% endfor %}   

   </select> 

   <button class="form-control" id="button">Get gateways</button>

</form>


<p id="countdown"></p>


<script>

    $('#button').click( function(event) {

        event.preventDefault();


        $.post("/ra/connect", $('#form').serialize(), function(data) {

            //alert(data);

            countdown = $("#countdown");

            countdown.append(data + "<br/>");

        });

    });

</script>

</html>''', all_classes=['Hello', 'World'])


@app.route('/ra/connect', methods=['GET', 'POST'])

def connect_management():

    user = request.form.get('selected_class')

    print('user:', user)

    return str(user)


app.run()


查看完整回答
反对 回复 2022-10-08
  • 1 回答
  • 0 关注
  • 154 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号