mysql - 从 MySQL 编辑数据填充 Flask WTF 表单并更新回 MySQL
问题描述
我的目标:
在编辑 BTN 上 - 表单预先填充了来自 db 的数据,允许我编辑一些字段,一旦进行更改,在编辑/提交时,btn 将使用新的更改更新数据库数据。
我有 Flask 应用程序,它呈现一个预先填充了 MySQL 数据的表单。(这有效)
@app.route('/get_and_edit_pipeline/<string:id>', methods=['GET', 'POST'])
@is_logged_in
def get_and_edit_pipeline(id):
if request.method == 'GET':
cur = mysql.connection.cursor()
result = cur.execute("""SELECT * FROM pipeline where pipeline_name='{}'""".format(id))
if result > 0:
res = cur.fetchall()
for i in range(len(res)):
pipeline_name = res[i]['pipeline_name']
pipeline_status_nm = res[i]['pipeline_status_nm']
pipeline_type = res[i]['pipeline_type']
cur.close()
form = AddPipeline(pipeline_name=pipeline_name,
pipeline_status_nm=pipeline_status_nm,
pipeline_type=pipeline_type)
return render_template('add_pipeline.html', form=form)
return render_template('pipeline.html')
如何更新/更改(归档)并提交回我的数据库
我正在尝试这个:
@app.route('/get_and_edit_pipeline/<string:id>', methods=['GET', 'POST'])
@is_logged_in
def get_and_edit_pipeline(id):
if request.method == 'GET':
cur = mysql.connection.cursor()
result = cur.execute("""SELECT * FROM pipeline where pipeline_name='{}'""".format(id))
if result > 0:
res = cur.fetchall()
for i in range(len(res)):
pipeline_name = res[i]['pipeline_name']
pipeline_status_nm = res[i]['pipeline_status_nm']
pipeline_type = res[i]['pipeline_type']
cur.close()
form = AddPipeline(pipeline_name=pipeline_name,
pipeline_status_nm=pipeline_status_nm,
pipeline_type=pipeline_type)
if form.validate_on_submit():
cur = mysql.connection.cursor()
form.pipeline_name = form.pipeline_name.data
form.pipeline_status_nm = form.pipeline_status_nm.data
form.pipeline_type = form.pipeline_type.data
cur.execute("""UPDATE pipeline SET pipeline_status_nm='{}' WHERE pipeline_name='{}'""".format(pipeline_status_nm, pipeline_name))
cur.session.commit()
return render_template('add_pipeline.html', form=form)
return render_template('add_pipeline.html', form=form)
return render_template('pipeline.html')
这是我的表单html
{% extends 'layout.html' %}
{% block body %}
<h1>Add Pipeline</h1>
{% from "includes/_formhelpers.html" import render_field %}
<form action="" method="post">
<div class="form-group">
{{render_field(form.pipeline_name, class_="form-control")}}
</div>
<div class="form-group">
{{render_field(form.pipeline_status_nm, class_="form-control")}}
</div>
<div class="form-group">
{{render_field(form.pipeline_type, class_="form-control")}}
</div>
<p>
<input type="submit" name='submit' class="btn btn-primary" value="Add">
<input type="submit" name='submit' class="btn btn-basic" value="Cancel">
</p>
</form>
{% endblock %}
我对 Flask WTF 很陌生-所以请客气:)
解决方案
推荐阅读
- javascript - 提交表单时反应无效的对象错误
- javascript - 如何在 Froala Editor 4.0.1 中插入图像 插入图像 -> 只需以“data:image”的形式插入 DOM
- node.js - 基于 NLP 的 API,可提取骑行时间
- python - 使用 pymetasploitable3 和 metasploit(msf) 控制台从 shell 升级到 Meterpreter linux metasploitable2 自动化
- android - 在 Flutter 中收集反馈数据
- typescript - TypeGraphQl,如何避免定义重复
- c++ - boost 与标准库的提示行为不同?
- android - 基于构建类型生成 Javadoc?
- javascript - 包含 5k 个嵌套 Vuejs 组件的页面
- javascript - 更改文件 json 中的其余 API 而无需重新部署