传递空值时列表索引超出范围

时间:2018-06-30 09:55:31

标签: python html json list flask

好的,我有以下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"
},
],
}

1 个答案:

答案 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