网页都有一个形式和内部表:不能使用request.form.get获得烧瓶形式表内容
<form method="post" action="{{ url_for('data.dataupdate',username=current_user.name,tablename=ddatatablename) }}">
<table class="table table-striped" id="table1" name="datatable">
<thead>
<tr>
<td bgcolor="#dcdcdc"><input type=checkbox name=select_all value="all" onclick="CheckAll(this.form)"></td>
</tr>
</thead>
{% if ddatas_perpage %}
<tbody name="datas">
{% for item in ddatas_perpage %}
<tr name="table">
<td><input type=checkbox name=select value={{ item.sn }} ></td>
<td class="text-info" name="tabletd" value={{ item[col] }} ><textarea>{{ item[col] }}</textarea></td>
的view_function是:
@data.route('/datas/edit/<username>/<tablename>/updatesuccess',methods=['GET','POST'])
def dataupdate(username,tablename):
selected = request.form.getlist("select")
ttt = request.form.getlist('datatable')
tttt = request.form.get('datatable')
ttttt = request.form.getlist('td')
tttttt = request.form.get('tablename')
datas = request.form.get("datas")
tables = request.form.get("table")
tabletds = request.args.get("tabletd")
f = request.form
flash("#######################",f.keys())
for key in f.keys():
flash(key)
for value in f.getlist(key):
flash(key+":"+value)
flash(ttt)
flash(tttt)
flash(ttttt)
flash('############',tttttt)
flash(selected)
flash(datas)
flash(tables)
flash(tabletds)
cases = UserCase.query.filter_by(username=username).all()
session['loginname']=username
if cases is not None:
return render_template('data/usercase.html', ccases=cases)
当我提交表单,只有复选框可以使用request.form.getlist(“select”)获取值,但表中的其他内容为None。
为什么它没有得到表格内容,但复选框? 我用户request.form.get或者request.args.get获得相同的结果,特别是使用request.form获得的键只包含checkbox键[select]。 我想获取Web表格的内容并更新到数据库表格。如何在Flask中做?
你为什么会认为这些其他值会存在?您在模板中唯一的实际表单元素是名称为“select”的复选框。 – 2015-02-12 09:16:52
当您提交表单时,只有'input','select','textarea'和'button'字段被发送到服务器。 – dirn 2015-02-12 13:43:00
@dirn您的评论应该作出回答。这是非常有用的信息并没有到处找到。 – 2017-08-08 12:01:08