如何从数据库获取数据为模态形式?

时间:2020-07-01 08:18:40

标签: python html flask sqlalchemy

我正在使用Flask,Jinja2,Python和SQLAchemy。

我想从数据库中检索数据并将其显示在我的模式中。

这是我的html代码:


     {% extends "layout.html" %}
        {% block title %}
            Admin
        {% endblock %}   
        {% block body %}
          <h1> Admin</h1>
          <div class="form-group">
        <table border=1>
          <tr>
            <th>usa_order_id</th>
            <th>user_id</th>
            <th>product_name</th>
            <th>cpu</th>
     
          </tr>
          {% for usa_order in usa_orders %}
          <tr>
            <th>{{usa_order.usa_order_id}}</th>
            <th>{{usa_order.user_id}}</th>
            <th>{{usa_order.product_name}}</th>
            <th>{{usa_order.cpu}}</th>
            
            <th>
              <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#myModal">
                Open modal
              </button>    
              <!-- The Modal -->
              <div class="modal" id="myModal">
                <div class="modal-dialog">
                  <div class="modal-content">
        
                    <!-- Modal Header -->
                    <div class="modal-header">
        
                      <button type="button" class="close" data-dismiss="modal" >&times;</button>
                    </div>
        
                    <!-- Modal body -->
                    <div class="modal-body">
                      <div class="form-group">
                          <input class="form-control" name ="usa_order_id" value={{usa_order.usa_order_id}}>
                          <input class="form-control" name ="user_id" value={{usa_order.user_id}}>
                          <input class="form-control" name ="cpu" value={{usa_order.cpu}}>
                      </div>
                    </div>
                    <!-- Modal footer -->
                    <div class="modal-footer">
                      <button type="button" class="btn btn-danger" data-dismiss="modal">Close</button>
                    </div>
        
                  </div>
                </div>
              </div>
            </th>
          </tr>
        {% endfor %}
        </table>    
          </div>     
            {% endblock %}

单击打开模式时,希望它显示数据库中的数据。我尝试了其他一些快速解决方案,但似乎没有一个适用于Python。

问题是:如何从数据库表中检索数据并将其显示在以for loop生成的模式中?

这是我的python,只显示所有数据库

from flask import Flask, render_template, request
from flask_sqlalchemy import SQLAlchemy

from  model import *
app = Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI']='mysql://root:xxx@localhost:3306/xxx'
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN']=True
db = SQLAlchemy(app)


@app.route("/admin")
def index():
    usa_order = usa_order.query.all()
    return render_template("admin.html",usa_order = usa_order)

1 个答案:

答案 0 :(得分:0)

由于您未提供摘录属于您的route.py,因此我不得不假设您将usa_orders数据正确地传递到模板。

如果要为usa_order中的每个usa_orders生成模态,则需要为每个订单创建唯一的模态。否则,您最终将为许多不同的用户/订单显示相同的模式。为此,只需编辑以下行即可为模式提供唯一的ID:

              <!-- The Modal -->
              <div class="modal" id="myModal">

类似:

              <!-- The Modal -->
              <div class="modal" id={{usa_order.usa_order_id}}>

或任何其他唯一的非重复值-最好来自您的数据库。

让我知道这是否有帮助,以及它是否对您不起作用:请提供有关您遇到的哪种错误的更多信息。