python - 图片不显示在网页上(Django)

标签 python django python-3.x

问题是这样的,使用 Bootstrap 3,从图像创建“Carousel”,然后在 Views 中写了一个循环,将所有带有路径的图像添加到字典中,然后通过循环,在 HTML-views 中输出所有图像。


HTML

<div id="myCarousel" class="carousel slide" data-ride="carousel">
<!-- Indicators -->
<ol class="carousel-indicators">
    <li data-target="#myCarousel" data-slide-to="0" class="active"></li>
    <li data-target="#myCarousel" data-slide-to="1"></li>
    <li data-target="#myCarousel" data-slide-to="2"></li>
</ol>
<!-- Wrapper for slides -->
<div class="carousel-inner">
    {% for picture in picture_list %}
    <div class="item active"><img src="{{ picture }}" style="width:100%;">
    </div>
    {% endfor %}
</div>
<!-- Left and right controls -->
<a class="left carousel-control" href="#myCarousel" data-slide="prev">
    <span class="glyphicon glyphicon-chevron-left"></span>
    <span class="sr-only">Previous</span>
</a>
<a class="right carousel-control" href="#myCarousel" data-slide="next">
    <span class="glyphicon glyphicon-chevron-right"></span>
    <span class="sr-only">Next</span>
</a>


观看次数

def recipes_list(request):
    recipes = Recipe.objects.filter(created_date__lte=timezone.now()).order_by('created_date')
    pictures = os.listdir(os.path.join(settings.STATIC_PATH, 'images/carousel'))
    picture_list = []
    for picture in pictures:
        path = str(os.path.join(settings.STATIC_PATH, 'images\carousel').replace('\\', '/'))
        picture_list.append('%s/%s' % (path, picture))
    return render(request, 'Recipes/recipes_list.html', {'recipes': recipes, 'sub_form': sub_form, 'picture_list': picture_list})

在浏览器中

<img src="C:/Users/%username%/PycharmProjects/Django/CookBook/Recipes/static/images/carousel/FRIED SAGE1.jpg" style="width:100%;">

最佳答案

Django 有 builtins for handling static files (和他们的路径)。让它完成艰苦的工作。

设置

STATIC_URL = '/static/'
STATIC_PATH = # some path

查看

def recipes_list(request):
    recipes = Recipe.objects.filter(created_date__lte=timezone.now()
                           ).order_by('created_date')
    pictures = os.listdir(os.path.join(settings.STATIC_PATH, 'images/carousel'))
    picture_list = ['images/carousel/%s' % picture
                    for picture in pictures]
    return render(request, 'Recipes/recipes_list.html', {'recipes': recipes, 'sub_form': sub_form, 'picture_list': picture_list})

模板

{% load static %}
...
<div class="carousel-inner">
    {% for picture in picture_list %}
        <div class="item active">
            <img src="{% static picture %}" style="width:100%;">
        </div>
    {% endfor %}
</div>
...

关于python - 图片不显示在网页上(Django),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48851220/

相关文章:

python - 如何计算日期选择器日历上选择的日期之间的天数

python - PyQt:重置或删除 QTreeWidgetItem 的背景颜色

python - 查找作为列表列表输入的 N x N 矩阵的行列式 - "list index out of range"

python-3.x - Keras 二元分类将输出压缩为 0/1

python - setup.py 不安装要求

python - node.js socket.io-client + python socketio

python:打开另一个文件以粘贴输出值

python - 无法迁移 Django 应用程序 - MySQL 抛出 OperationalError "Too big scale specified"

python - 使用 anaconda 发行版进行 Web 开发可以吗?

django - 查询集过滤器中使用的 EmptyQuerySet 上的 value_list 返回完整集