Flask在表单输入字段之外提交数据

时间:2015-06-21 18:43:44

标签: python forms input flask args

我正在使用Flask,我正在尝试提交一些不在输入字段中的数据,以便添加到数据库中。

表单中的jinja代码如下所示:

{% for item in items %}
    <tr>
        <form id="adauga_{{ item.stoc_id }}" action="{{ url_for('adauga') }}" method="POST">
            <td>{{ item.stoc_id }}</td>
            <td>{{ item.denumire_produs }}</td>
            <td>{{ item.producator }}</td>
            <td>{{ item.data_expirarii }}</td>
            <td>{{ item.cant_fl }}</td>
            <td>{{ item.fractie }}</td>
            <td>{{ '%0.2f' | format(item.pret_fl | float) }}</td>
            <td><input type="number" max="{{ item.cant_fl }}" class="form-control" name="unitati"></td>
            <td><input type="number" max="{{ item.fractie }}" class="form-control" name="fractii"></td>
            <td><button type="submit" class="btn btn-primary" form="adauga_{{ item.stoc_id }}"><i class="fa fa-plus"></i> ADAUGA</button></td>
        </form>
    </tr>
{% endfor %}

在我的应用代码中,我有这个

@richter.route("/adauga", methods=["POST"])
def adauga():
    denumire_produs = (how do I get this?)
    producator = (how do I get this?)
    unitati = request.form["unitati"]
    fractii = request.form["fractii"]
    g.db.execute("INSERT INTO stocuri_disponibile (denumire_produs, producator, cant_fl, fractie) VALUES(?, ?, ?, ?)", [denumire_produs, producator, unitati, fractii])
    return redirect(request.referrer)

如何从表单中获取 denumire_produs producator 变量?

2 个答案:

答案 0 :(得分:0)

我明白了。我认为。不确定这是否是正确的方法,但它适用于我。

jinja code

@richter.route("/adauga/<denumire_med>,<producator>", methods=["POST"])
def adauga(denumire_med, producator):
    unitati = request.form["unitati"]
    fractii = request.form["fractii"]
    g.db.execute("INSERT INTO stocuri_disponibile (denumire_med, producator, cant_fl, fractie) VALUES(?, ?, ?, ?)", [denumire_med, producator, unitati, fractii])
    return redirect(request.referrer)

申请代码:

<script src="path/to/script.js"></src>

如果有更好的方法,请分享。我总共有15个论点要通过,所以我很好奇是否有更短的方法可以做到。

干杯。

答案 1 :(得分:0)

您可以使用HTML&lt; input type =&#34; hidden&#34;&gt;来实现此目的。模板中的标签

<td><input type="hidden" name="denumire_produs" value="{{ item.denumire_produs }}">{{ item.denumire_produs }}</td>
<td>><input type="hidden" name="producator" value="{{ item.producator }}">{{ item.producator }}</td>

然后通过路由处理函数

中的表单检索它
def adauga():
    denumire_produs = request.form["denumire_produs"]
    producator = request.form["producator"]
    ...