python - Flask:从数据库更新现有数据
问题描述
对于以下模型和路线,如何让页面在可编辑框中显示数据库字段中的现有数据,并带有“保存更改”按钮。
# MODEL
class Task(db.Model): #inherits from db>Model
__tablename__ = "Tasks"
id = db.Column(db.Integer, primary_key=True)
# datetime, need to work this out
Title = db.Column(db.String(4096))
Status = db.Column(db.String(4096))
Description = db.Column(db.String(4096))
Priority = db.Column(db.String(4096))
Assigned_To = db.Column(db.String(4096))
# ROUTE:
@app.route("/<int:task_id>/edit")
def _edit(task_id):
task = Task.query.get_or_404(task_id)
return render_template('update.html',task=task)
<—- update.html—->
<form method="POST" action="">
<fieldset>
{{ task.Title }}
{{ task.Description }}
</fieldset>
</form>
如果可能,我宁愿不定义表单。我已经配置并运行了一个 SQL Alchemy 数据库。
添加到此问题末尾的路线运行良好 - 将新任务(行)添加到数据库并创建单个页面以查看单个任务(行):
@app.route("/tasks", methods=['GET', 'POST'])
def new_post():
if request.method == "GET":
return render_template("tasks.html")
data = Task(
Title=request.form["title"],
Description=request.form["description"],
Status=request.form["status"],
Priority=request.form["priority"],
Assigned_To=request.form["assigned"],
)
db.session.add(data)
db.session.commit()
return redirect(url_for('index'))
@app.route("/<int:task_id>")
def qtsk(task_id):
task = Task.query.get_or_404(task_id)
return render_template('indtask.html',task=task)
我是烧瓶的新手,我将不胜感激。
解决方案
我在问一个类似的问题。我认为您可以使用表单进行更新。它不必以表格形式呈现给用户。您可以编写一个不像表单的 html 模板,但您需要一个表单来获取数据。也许你可以使用 javascript 而不是你可以跳过表单的使用。我要记住 javascrip 并将其用于我的应用程序。
推荐阅读
- ios - 访问自定义 cocoapod 内的 pod
- mysql - 尝试根据另一列 SQL 中的值更新具有不同值的新列的行
- javascript - 谷歌图表y轴标签切断,我正在使用材料图表
- html - 如何均匀分布导航栏属性?
- javascript - NodeJS - 放置 eval() 函数的位置
- scikit-learn - 是否可以将 sklearn 形式的 cross_val_score() 应用于具有 Weigth Elimination 之类的插件的 neupy NN?
- java - HttpServletResponse setStatus 不起作用
- asp.net - 如何读取 appsettings.json 值 ASP.NET Core
- r - R Rstudio 安装包 mapdeck 和 googlePolylines 的问题
- react-native - 使用 loopBack 的两个自定义方法/端点,一个有效,另一个给出 401