【问题标题】:How can I create an HTML Dropdown list in python code by referring to a list in the code?如何通过引用代码中的列表在 python 代码中创建 HTML 下拉列表?
【发布时间】:2019-05-02 09:09:54
【问题描述】:

我正在尝试通过从我用 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>"""

【问题讨论】:

    标签: python html list dropdown cherrypy


    【解决方案1】:

    我们可以使用 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
    

    【讨论】:

      猜你喜欢
      • 2019-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-14
      • 1970-01-01
      • 1970-01-01
      • 2016-03-17
      • 1970-01-01
      相关资源
      最近更新 更多