Flask和Python:单击下拉列表中的值时动态打印表格

2024-06-16 13:21:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个mysql表,在html页面中有一个下拉列表。我想根据从下拉菜单中选择的值(现代、Maruthi、丰田、福特)打印Myqsl表中的选定行

我的脚本home.py为:

class Table(db.Model):

 name=db.Column(db.String,primary_key=True)
 color= db.Column(db.String(100))
 Engine=db.Column(db.String(200))
 Adress=db.Column(db.String(200))
 Car_type=db.Column(db.String(200))


@app.route('/Home', methods=["GET", "POST"])
def Home():
 cars = ['Hyundai', 'Maruthi', 'Toyota', 'Ford']
 if request.method=='POST':
    manus=request.form
    return redirect(url_for("newpage.html", classi=manus))
 return render_template("Home.html",   cars=cars)#

@app.route('/newpage/<classi>' )  

def user(classi):
 datas=Table.query.filter_by(Table.Car_type == classi).all()
 return render_template("newpage.html", datas=datas)

我的主页为:

<form method="POST " action="/newpage">
<select name="Cartypes" </p>
<option value="{{cars[0]}}" selected>{{cars[0]}}</option>
{% for t in cars[1:] %}
  <option value="{{t}}">{{t}}</option>
{% endfor %}
</select>

我的newpage.html如下所示:

 {% for row in datas %}
   

    <tr>
   

        <td>{{ row.name }}</td>
        <td>{{ row.color }}</td>
        <td>{{ row.Engine }}</td>
        <td>{{ row.Adress }}</td>
        <td>{{ row.Car_type }}</td>
        

   
    </tr>
{% endfor %}

我得到以下错误: 未找到 在服务器上找不到请求的URL。如果手动输入URL,请检查拼写并重试。


Tags: namedbstringhtmltypetablecolumncar
1条回答
网友
1楼 · 发布于 2024-06-16 13:21:40

更好的方法是在表单请求中实现GET方法

接下来的事情是,如果没有提交类型的按钮,表单将不会自动提交。为了做到这一点,您可以借助javascript

在你的烧瓶应用程序中:

@app.route('/newpage' )  
def user():
  classi = request.args.get("Cartypes")
  datas=Table.query.filter(Table.Car_type == classi).all()
  return render_template("newpage.html", datas=datas)

在your home.html中

<form method="GET" action="/newpage">
  <select name="Cartypes" onchange="this.form.submit()">
    <option value="0" selected>Select Model</option>
    {% for t in cars %}
      <option value="{{t}}">{{t}}</option>
    {% endfor %}
  </select>
</form>

更改下拉列表后,它会向flask服务器发送一个请求,请求如下:

http://localhost/newpage/?Cartypes=type_here

flask服务器搜索Cartypes参数,查询它并将查询集返回到html

相关问题 更多 >