我试图通过从我用python代码生成的列表中获取值来创建HTML下拉列表。我通过从json文件中获取字符串在python中创建列表,然后在以CherryPy开头的HTML页面的下拉列表中显示该列表。我的HTML代码应该怎么做?
这是创建列表的代码的一部分:
def get_lists(self):
file = open(CONF_FILE, 'r')
config = json.load(file)
file.close()
string = config["URL"] + ":" + config["port"] + "/static" # Genera URL per GET
data = json.loads(requests.get(string).text) # GET per ottenere il catalog
list_gar = [g["name"] for g in data["gardens"]] # Generates list of gardens
list_pla = [p["name"] for p in data["plants"]] # Generates list of plants
list_dev = [d["name"] for d in data["devices"]] # Generates list of devices
这是应该创建下拉列表的函数,但是我不知道如何编写它才能显示特定列表的字段(假设在这里我要显示列表“ list_gar”):>
#function to add the plant
@cherrypy.expose
def addplant(self):
return """<html>
<head></head>
<body>
<h2>ADD PLANT</h2>
<form method="get" action="posting_plant" target="_self">
Select Garden:<br>
<select name="garden">
<option value=""></option>
<option value=""></option>
<option value=""></option>
<option value=""></option>
</select>
<br>
Name:<br>
<input type="text" name="name" value="">
<br>
<br><br>
<input type="submit">
</form>
</body>
</html>"""
答案 0 :(得分:0)
我们可以使用for循环并遍历列表,以便为列表的每个元素创建一个下拉项。
string="""<html>
<head></head>
<body>
<h2>ADD PLANT</h2>
<form method="get" action="posting_plant" target="_self">
Select Garden:<br>
<select name="garden">
"""
for i in list_gar:
string+="""<option value="""+i+"""></option>\n """
string+=""" </select>
<br>
Name:<br>
<input type="text" name="name" value="">
<br>
<br><br>
<input type="submit">
</form>
</body>
</html>"""
return string