Flask 在表单输入字段之外提交数据
Flask submit data outside of form input fields
我正在使用 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 变量?
我明白了。我认为。不确定这是否是正确的方法,但它对我有用。
jinja 代码
{% for item in items %}
<tr>
<form id="adauga_{{ item.stoc_id }}" action="{{ url_for('adauga', denumire_med=item.denumire_med, producator=item.producator) }}" method="POST">
<td>{{ item.stoc_id }}</td>
<td>{{ item.denumire_med }}</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/<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)
如果有更好的方法,请分享。我有...总共要传递 15 个参数,所以我很好奇是否有更短的方法。
干杯。
您可以在模板中使用 HTML 标签来实现此目的
<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"]
...
我正在使用 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 变量?
我明白了。我认为。不确定这是否是正确的方法,但它对我有用。
jinja 代码
{% for item in items %}
<tr>
<form id="adauga_{{ item.stoc_id }}" action="{{ url_for('adauga', denumire_med=item.denumire_med, producator=item.producator) }}" method="POST">
<td>{{ item.stoc_id }}</td>
<td>{{ item.denumire_med }}</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/<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)
如果有更好的方法,请分享。我有...总共要传递 15 个参数,所以我很好奇是否有更短的方法。
干杯。
您可以在模板中使用 HTML 标签来实现此目的
<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"]
...