Python 在数据库项目中按id和名称获取不同的选项值和名称

Python 在数据库项目中按id和名称获取不同的选项值和名称,python,html,flask,Python,Html,Flask,您好,我有一个问题:是否可以使用值组id创建选项下拉列表,使用组名创建选项文本 我的代码很简单,首先我从数据库中查询pick group id和name,然后在html中呈现模板,其中是multiselect选项。 html代码 <select class="selectpicker" name="ms1" id="ms1" multiple> {% for x in grouplist %} <opt

您好,我有一个问题:是否可以使用值
组id创建选项下拉列表
,使用
组名创建选项文本

我的代码很简单,首先我从数据库中查询pick group id和name,然后在html中呈现模板,其中是multiselect选项。 html代码

<select class="selectpicker" name="ms1" id="ms1" multiple>
    {% for x in grouplist %}
    <option value="{{ x }}">{{ x }}</option>
    {% endfor %}
</select>
目前在选项中,我只能看到id


知道如何在选项中拆分值和文本吗?所有帮助都将不胜感激

我认为您仅在列表中获得groupId类似于“a”的行有两个值一个零索引,您有groupId,在第一个索引中,您有像这样的groupName[groupId,groupName]您只保存了行[0],它是groupId。这就是为什么您在列表a中有groupId。我建议您,如果要同时存储groupId和GroupName,请使用字典

def calendar():
    a = {}
    groupId = []
    gourpName = []
    query = "SELECT groupId, groupName from dbo.CalGroups"
    cursor.execute(query)
    for row in cursor:
        groupId.append(row[0])
        groupName.append(row[1])
    a["groupId"] = groupId
    a["groupName"] = groupName 
    app.logger.debug(a)
    return render_template('calendar.html', grouplist=a)
那么html代码应该是这样的

<select class="selectpicker" name="ms1" id="ms1" multiple>
    {% for x in range(len(grouplist["groupId"])) %}
    <option value="{{ grouplist["groupId"][x] }}">{{ grouplist["groupName"][x] }}</option>
    {% endfor %}
</select>

{范围内x的百分比(len(grouplist[“groupId]”)%}
{{grouplist[“groupName”][x]}
{%endfor%}

hi,这样我就得到了错误
文件“C:\python\flaskProject\app\templates\calendar.html”,第215行,在块“content”{%范围内的x(len(grouplist[“groupId”]))%}中jinja2.exceptions.UndefinedError:“len”未定义
那么您应该在日历函数中计算长度,并将其发送到参数中,就像发送字典一样。然后将len(grouplist[“groupId”])替换为您在param中发送的长度。因此,我喜欢这样做
test=len(a)
,然后
return render_template('calendar.html',grouplist=a,test2=test)
在html
{%for x in range(test2)%}
中我认为它可以工作,但idk为什么它只显示2个组,但存在6nvm我修复了它,感谢您的帮助否,请这样做,test=len(a[“groupId”])。然后它会给你你想要的结果。
<select class="selectpicker" name="ms1" id="ms1" multiple>
    {% for x in range(len(grouplist["groupId"])) %}
    <option value="{{ grouplist["groupId"][x] }}">{{ grouplist["groupName"][x] }}</option>
    {% endfor %}
</select>