Я только изучаю Python и Django.(Спасибо всем, кто вносит свой вклад - это был бесценный ресурс!)
Одна, казалось бы, базовая вещь, с которой у меня возникают проблемы, - рендеринг простого списка статических файлов (скажем, содержимого одного каталога репозитория).на моем сервере) в виде списка загружаемых ссылок.Является ли это безопасным или нет, это другой вопрос, но предположим, что я хочу это сделать ...
Этот пост помог направить меня в правильном направлении: Список каталогов Python, возвращенный в шаблон Django
Этот фрагмент кода выводит имена файлов в «myfiles», если они запускаются из приглашения:
path= os.path.dirname(os.path.abspath(__file__))
myfiles = os.path.join(path, 'myfiles')
os.chdir(myfiles)
for files in os.listdir("."):
print files
Но как мне передать эти файлы в шаблон Django и создать список ссылок?Я думаю, что мне, возможно, придется создать какой-либо словарь / кортеж Python, чтобы сделать его итеративным, передать его в качестве переменной шаблона и отобразить его в цикле for?
Нужно ли добавлять запись в мои URL-адреса.py файл, чтобы заставить это работать?Что-то вроде этого?
(r'^myfiles/(?P<path>.*)$', 'django.views.static.serve', {'document_root': os.path.join(os.path.dirname(__file__), 'myfiles'), 'show_indexes': True}),
Спасибо за вашу помощь!Я только учусь, и я не мог понять, как это сделать из существующих фрагментов кода в Интернете.
РЕДАКТИРОВАТЬ: Это то, что я получил в моем views.py: (вы заметите из'\\', что я нахожусь в системе Windows)
def myfiles_page(request):
path = os.path.dirname(os.path.abspath(__file__))
myfiles = os.path.join(path, 'myfiles\\')
os.chdir(myfiles)
x = 0
d = {}
for file in os.listdir("."):
d[x] = (myfiles + file)
x = x + 1
variables = RequestContext(request, {
'user' : request.user,
'filedict' : d,
})
return render_to_response('myfiles_page.html', variables)
Вот как я пытался заставить его отображаться в шаблоне: (согласно документации Django )
{% for key, value in filedict %}
{{ key }}: {{ value }}
{% endfor %}
Но 'filedict' все еще ничего не отображает в шаблоне.Есть идеи?