【问题标题】:how to get data from database to modal form?如何从数据库中获取数据到模态形式?
【发布时间】:2020-07-01 08:18:40
【问题描述】:

我正在使用 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。

问题是:如何从我的 db 表中检索数据并将其显示在模式上 - 它在 for loop 中生成?

这是我的python,只显示所有的db

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)

【问题讨论】:

    标签: python html flask sqlalchemy


    【解决方案1】:

    由于您没有提供属于您的 routes.py 的 sn-ps,我将不得不假设您将 usa_orders 数据正确地传递给模板。

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

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

    类似于:

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

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

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

    【讨论】:

    • 您好,感谢您的回复,是否可以获得表格 html 中显示的值?如果我遵循您的解决方案,假设我有 100 多个数据,那么我需要添加每个数据?抱歉,我是 html 新手
    • 感谢您更新 routes.py。我不明白它不应该如何工作。如果您的数据库模型具有查询的字段,那么您应该能够遍历所有字段。由于您的模式在{% for usa_order in usa_orders %} 循环中,因此只要您在循环中,它就应该加载所有字段。所以你试一试,让我知道它是否有效
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    • 2018-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多