Me gustaría lista de los archivos que se encuentran en los directorios y subdirectorios. He utilizado esta respuesta a la lista, pero los elementos no son clickables, así que me gustaría agregar un enlace entre el nombre de los archivos y sus ubicaciones. He de intentar modificar la plantilla con algo como esto :

<!doctype html>
<title>Path: {{ tree.name }}</title>
<h1>{{ tree.name }}</h1>
<ul>
{%- for item in tree.children recursive %}
    <li><a href="{{ item.name }}">{{ item.name }}</a>
    {%- if item.children -%}
        <ul><a href="{{ loop(item.children) }}">{{ loop(item.children) }}</a></ul>
    {%- endif %}</li>
{%- endfor %}
</ul>

Pero no funciona, los enlaces no son buenas. Wheareas quiero un enlace a http://192.168.0.70:5000/static/repertory/subrepertory/file, tengo un enlace a http://192.168.0.70:5000/file, lo que conduce a un 404. Puede alguien me ayuda ?

InformationsquelleAutor Shan-x | 2013-07-24

1 Comentario

  1. 4

    Intente esto:

    <ul><a href="/static/{{ loop(item.children) }}">{{ loop(item.children) }}</a></ul>

    Acabo de añadir la ruta estática que usted necesita directamente después de href=", antes de {{.

    Otra forma de hacer esto es agregar el complemento necesario de parte de la ruta de acceso en la make_tree función ya.

    EDICIÓN:

    vamos a make_tree() este aspecto:

    def make_tree(path):
        tree = dict(name=path, children=[])
        try: lst = os.listdir(path)
        except OSError:
            pass #ignore errors
        else:
            for name in lst:
                fn = os.path.join(path, name)
                if os.path.isdir(fn):
                    tree['children'].append(make_tree(fn))
                else:
                    tree['children'].append(dict(name=fn))
        return tree

    A continuación, devuelve nombres de ruta completos y no sólo los nombres de archivo.

    • Puedo agregar /static, de hecho. Pero no puedo agregar repertory/subrepertory, porque es dinámica (su son algunos de ellos, no siempre el mismo).
    • Por lo que añadir el «estática» en la plantilla, y el repertorio/lo que sea en su make_tree función!

Dejar respuesta

Please enter your comment!
Please enter your name here