gpt4 book ai didi

Python Flask 将表单数据保存到数据库

转载 作者:太空宇宙 更新时间:2023-11-04 00:54:25 24 4
gpt4 key购买 nike

我是 Flask 的新手,我正在尝试使用 SQLAlchemy 将 Flask 表单中的表单数据保存到数据库,但我没有任何运气。我已经尝试了在本论坛内外发现的几种研究方法。

当我采用简单的方式时,Web 表单可以工作,我可以输入数据,但它不会填充数据库。

----模型----

class QIDMapping(db.Model):
id = db.Column(db.Integer, primary_key=True)
qid_number = db.Column(db.Integer)
br_field_name = db.Column(db.String(75))
vendor_field = db.Column(db.String(75))

----表格----

class QIDForm(Form):
qidnumber = IntegerField('qidnumber', validators=[DataRequired()])
brfieldname = StringField('brfieldname', validators=[DataRequired()])
vendorfieldname = StringField('vendorfieldname')

----浏览量----

from flask import render_template, flash, redirect, session, url_for, 
request, g
from flask_wtf import form
from app import app, db
from .forms import QIDForm
from .models import User, QIDMapping
from flask.ext.sqlalchemy import SQLAlchemy


@app.route('/qidmapping', methods=['GET', 'POST'])
def qid_map_update():
form = QIDForm()
return render_template('qidmapping.html',
title='QID Mapping',
form=form)

----qidmapping.html----

{% block content %}

<h1>Map QIDs to Vendor File</h1>
<form action="" method="POST">
{{form.hidden_tag()}}
<p>
Please enter the QID, BrassRing Field Name and Vendor Tag
<br>
<h2>QID Number {{ form.qidnumber(size=25) }}<br></h2>
<h2>BR Field {{ form.brfieldname(size=25) }}<br></h2>
<h2>Vendor Field {{ form.vendorfieldname(size=25) }}<br></h2>
</p>
<p><br>
</p>
<p><input type="submit" value="Save Fields">
</p>
</form>
{% endblock %}

这个帖子里的方法我也试过Flask - WTForm - save form to db当我这样做时,我得到一个不允许使用方法的错误,我不确定为什么。

----查看问题20837209格式----

@app.route('/qidmapping', methods=['GET', 'POST'])
def qid_map_update():
form = QIDForm()
if form.validate_on_submit():
newform = (
form.qidnumber.data,
form.brfieldname.data,
form.vendorfieldname.data
)
db.session.add(newform)
db.session.commit()
return redirect('/qidmapping')
return render_template('qidmapping.html',
title='QID Mapping',
form=form)

如有任何帮助,我们将不胜感激!

最佳答案

尝试替换

newform = (
form.qidnumber.data,
form.brfieldname.data,
form.vendorfieldname.data
)
db.session.add(newform)

m = QIDMapping()
m.qid_number = form.qidnumber.data
m.br_field_name = form.brfieldname.data
m.vendor_field = form.vendorfieldname.data
db.session.add(m)

...如果这不起作用。进行标准的 POST 故障排除:

1)验证POST请求

2) 确保 CSRF 正常工作。

3) 记录验证错误/成功

4) 检查数据库异常

关于Python Flask 将表单数据保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35704241/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com