【发布时间】:2020-10-23 21:38:10
【问题描述】:
我知道这个问题被问了很多,但所有解决方案都不适合我。我本质上在一个视图中有一个表格,它使用 HTML 和 sqlalchemy 中的 foreach 循环显示,这会一一吐出记录并在最后一列添加一些“操作”按钮(删除和编辑),我只需从 foreach 循环中的每条记录中传递 ID,然后就完成了。
我的模式有很多问题,当我在每个输入的“值”字段中回显数据时,它只会显示第一条记录中的数据,我真的很难过如何制作这个功能有效(javascript不是我最强的语言),不使用Ajax和php也可以工作吗? 我正在使用烧瓶、python 和 sqlalchemy。
我认为问题在于模态仅在 foreach 循环开始运行时创建一次,因此为什么它只有模态内的第一条记录数据,任何帮助解决这个问题,这样我就可以编辑里面的每个单独的记录桌子会很棒!感谢您的帮助。
我的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>cpu</th>
</tr>
{% for usa_order in usa_orders %}
<tr>
<th><input class="form-control" name ="usa_order_id" value={{usa_order.usa_order_id}}></th>
<th><input class="form-control" name ="user_id" value={{usa_order.user_id}}></th>
<th><input class="form-control" name ="cpu" value={{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" >×</button>
</div>
<!-- Modal body -->
<div class="modal-body">
<div class="form-group">
<input class="form-control" name ="usa_order_id" value=usa_order_id>
<input class="form-control" name ="user_id" value=user_id>
<input class="form-control" name ="cpu" value=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 代码
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)
if __name__ == '__main__':
app.run(debug=True,host="0.0.0.0")
我的模型.py
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class usa_order(db.Model):
__tablename__ = "usa_order"
usa_order_id = db.Column(db.Integer,primary_key = True)
cpu = db.Column(db.String, nullable=False)
user_id = db.Column(db.Integer, db.ForeignKey("user.user_id"), nullable=False)
【问题讨论】:
标签: python html ajax flask flask-sqlalchemy