好的,我有以下HTML表单:
<form method ="post" action="/custom">
<div class="container">
<select multiple name ="multiple">
<option value="id">ID</option>
<option value="is_visible">Visible</option>
</select>
<button type="submit">Login</button>
</div>
</form>
我有以下Python代码将值插入到数据库中
@app.route('/custom',methods = ['POST', 'GET'])
def custom_fields():
login = 'urlhere.com'
url_tags = 'targeturlhere.com/page.json'
multiple = request.form.getlist('multiple')
post = session.post(login, data=payload)
r_tags = session.get(url_tags)
parsed_tags = json.loads(r_tags.text)
for tag in parsed_tags['tags']:
cursor.execute("INSERT INTO dbo.tags"
"(tagid, is_visible, products_count, slug, title, created_at ,updated_at )"
"VALUES (?,?,?,?,?,?,?)"
,(tag[multiple[0]],tag[multiple[1]], tag['products_count']
,tag['slug'],tag['title'],tag['created_at'],tag['updated_at']))
con.commit()
所以我现在要做的是选择要传递给Python代码的值。现在的问题是,如果我选择代码可以正常工作的值,但是如果我不选择某些内容,则会得到以下信息:
IndexError: list index out of range
是否有任何方法可以传递空值并完成我想要的?另请注意,我正在使用json代码,请参见以下格式:
{
tags: [
{
created_at: "2018-02-28T14:55:19+01:00",
customer_id: null,
id: 4544544,
is_visible: true,
products_count: 6,
slug: "productname",
title: "productname",
updated_at: "2018-05-25T00:08:04+02:00"
},
],
}
答案 0 :(得分:1)
我假设您正在为<script>
$(document).ready(function(){
$("#color").change(function(){
$("#iframeId").attr("src",$('#color option:selected').val());
$("#iframeId1").attr("src",$('#color option:selected').val());
});
});
</script>
键传递一个空值。最简单的解决方案是在从请求中获取multiple
列表后立即对其进行检查。如果为空,请使用默认值:
multiple