Как я могу создать раскрывающийся список HTML в коде Python, ссылаясь на список в коде? - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь создать раскрывающийся список в HTML, беря значения из списка, который я создаю с моим кодом на python.Я создаю свой список в Python, беря строки из файла JSON, а затем я хотел бы показать этот список в раскрывающемся списке на странице HTML, которую я начинаю с CherryPy.Какой мой 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>"""

1 Ответ

0 голосов
/ 02 мая 2019

Мы можем использовать цикл 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
...