使用Python Flask HTML列表中的变量更新SQL数据库



我正在尝试创建一个网站表单(使用Python Flask和wtforms和PyoDBC进行我的数据库连接)。我有一个SQL Server数据库,该数据库正在显示在HTML中更新的记录。

我的目标是更新数据库中每个记录的"单位价格"one_answers"折扣"。我创建的表格需要用户在每个字段中的输入。因为该数据库数据显示在列表中,所以我不确定如何将数据匹配回数据库。

当我按原样提交表单时,只有第一个记录才插入数据库中,这就是我的测试环境中的表格(请宽恕可怕的格式)。第一列是用于"单位价格",第二列是"折扣",插入数据库的唯一记录是第一个,元素和元素名称未正确映射。

有没有办法引用" ElementData"中的列?(例如:ElementData.uniqueKey)

如何在HTML中显示的数据与插入数据库的数据之间创建连接?

编辑:我在YouTube上观看了Corey Schafer的一些视频,发现它们很有帮助,但他们还没有解决我的问题。

我目前正在迈向创建自己的列表,然后在HTML中调用该列表的方向。所以而不是

elementData = cur.execute("选择uniquekey,element,elementName,varke prakepricingdata where clientname = clientname")。fetchall()

fetchall()

我尝试了:

uniquekey = cur.execute("从fackpricingdata中select selectkey where clientname = clientname")。fetchall()

element = cur.execute("从fackpricingdata中选择element where clientname = clientname")。fetchall()

elementName = cur.execute("从fackpricingdata中select elementName where clientname = clientname")。fetchall()

elementData = [unique key,element,elementname]

但是,当引用elementData [0]时,仅获得唯一的键,我就会获得整个第一行。

我如何获得我的想要的东西?感谢我能得到的任何帮助!

@app.route("/VendorPricing/Example", methods=['GET', 'POST'])
@login_required
def vendorpricing():
    clientname = "Example Credit Union"
    elementdata = cur.execute("SELECT UniqueKey, Element, ElementName, Quantity FROM FakePricingData WHERE ClientName=clientname").fetchall()
    form = VendorPricingForm()
    if form.validate_on_submit():
        for elementdata in elementdata:
            loggedinuserid = current_user.get_id()
            query = "INSERT INTO FakeQuoteData (UniqueKey, Element, ElementName, Quantity, UnitPrice, Discount, ClientName, SubmittedBy, LoggedInUserId) VALUES (?,?,?,?,?,?,?,?,?);"
            query_values = [form.uniquekey.data, form.element.Element, 'NULL', '0', form.unitprice.data, form.discount.data, clientname, form.submittedby.data, loggedinuserid]
            cur.execute(query, query_values)
            cur.commit()
            flash('Your pricing has been submitted!', 'success')
            return redirect(url_for('welcome'))
    return render_template('vendorpricing.html', form=form, clientname=clientname, elementdata=elementdata)
    
    
    
    ------ form ------
    
class VendorPricingForm(FlaskForm):
      unitprice = IntegerField('Unit Price', validators=[DataRequired()])
      discount = IntegerField('Discount')
      uniquekey = StringField('Unique Key')
      submittedby = StringField('Submitted By', validators=[DataRequired()])
      submit = SubmitField('Submit')
{% extends "layout.html" %}
{% block content %}
<h2>{{ title }}</h2>
<body>
    <form method="POST" action="">
        {{ form.hidden_tag() }}
        <div class="vendor-form-group">
            {{ form.unitprice.label(class="form-control-label") }}
            {{ form.discount.label(class="form-control-label") }}
            {% for elementdata in elementdata %}
            <p>
                {{ elementdata }}
                {{ form.unitprice }}
                {{ form.discount }}
            </p>
            {% endfor %}
            {{ form.submittedby.label(class="form-control-label") }}
            <p>{{ form.submittedby }}</p>
            {{ form.submit }}
        </div>
    </form>
</body>
{% endblock content %}

您可以尝试InputRequired()而不是datarequired()

相关内容

  • 没有找到相关文章

最新更新