我在网站上使用图片库应用。目前我将图像文件放在目录中,并手动为每个图像编写img html标签。是否可以让django自动在目录中创建文件列表,并将json输出发送到gallery应用程序,这样我就可以使用javascript为每个图像文件生成<img>
个元素。或者,每当请求图库应用程序时,我是否可以直接使django为目录中的每个文件自动生成<img>
个元素。
答案 0 :(得分:16)
这里有一些代码:
views.py
import os
def gallery(request):
path="C:\\somedirectory" # insert the path to your directory
img_list =os.listdir(path)
return render_to_response('gallery.html', {'images': img_list})
gallery.html
{% for image in images %}
<img src='/static/{{image}}' />
{% endfor %}
答案 1 :(得分:4)
import os
from django.conf import settings
from annoying.decorators import ajax_request
@ajax_request
def json_images(request, dir_name):
path = os.path.join(settings.MEDIA_ROOT, dir_name)
images = []
for f in os.listdir(path):
if f.endswith("jpg") or f.endswith("png"): # to avoid other files
images.append("%s%s/%s" % (settings.MEDIA_URL, dir_name, f)) # modify the concatenation to fit your neet
return {'images': images}
此函数返回一个包含MEDIA_ROOT内目录中所有图像的json对象。
需要django-annoying包;)