Werte auflisten anstatt string ausgeben

Django, Flask, Bottle, WSGI, CGI…
Antworten
erdmulch
User
Beiträge: 230
Registriert: Samstag 17. Juli 2010, 19:50

Hallo,

ich würde mir gerne alle Dateien eines bestimmten verzeichnisses auslesen und diese in einer Dropdown Box im Browser darstellen lassen.
Die Python funktion, funktioniert ohne Probleme. Wenn ich den Browser öffne, dann erscheinen die Dateinen nicht untereinander sondern in einem langen String nebeneinander.

kann mir jemand sagen wie ich das splitten kann, sodass die Werte untereinander angezeigt werden anstatt nebeneinander?

vielen Dank

Code: Alles auswählen

def v_Mediacenter(request):
    startdir = ".."
    for root, dirs, files in os.walk(startdir):
        print "   " * (root.count(os.sep) - startdir.count(os.sep)),
        print os.path.split(root)[1],
        print files
    render_dict={'files':files,
                }
    return render(request,'Mediacenter/index.html', render_dict)

Code: Alles auswählen

<form action="select.htm">
  <p>
    <select name="top5" size="3">
      <option>{%for file in files%}{{file}}{%endfor%}</option>
    </select>
  </p>
</form>
BlackJack

@erdmulch: Du hast die ``for``-Schleife im Template so geschrieben das *in* dem einen <option>-Element alle Dateinamen aus `files` eingesetzt werden. Ganz offensichtlich sollte die so geschrieben werden das pro Element in `files` ein eigenes <option>-Element mit dem Dateinamen erstellt wird.

Die Python-Funktion erscheint mir auch etwas komisch was die Schleife angeht, weil da wer weiss wie viele Unterverzeichnisse durchlaufen werden, Du am Ende aber nur den letzten Wert verwendest der `files` zugewiesen wurde. Das ist eigenartig.
Antworten