【问题标题】:images not loading on webpage from database using django图像未使用 django 从数据库加载到网页上
【发布时间】:2020-04-20 14:55:24
【问题描述】:

我制作了一个图书馆网络应用程序。我正在尝试从数据库中搜索书籍。所有其他信息,如标题,除了图像。下面是屏幕截图 enter image description here

下面是我的search.html


    {% extends 'bookslib/base.html' %}
    {% block body_block %}
    {% load static %}
    {% if books %}
    {% for book in books %}
           <div class="books">
        <div class="book">
            <img src="{{ book.imagefile.url }}" height="250px" width="200px">
        <p>{{ book.title }}</p>
        </div>
    </div>    

{% endfor %}
{% endif %}
{% endblock %}

下面是搜索视图:

enter code here
 def search(request):

    if request.method == "POST":
        query = request.POST.get('query')
        if query:
            books = Book.objects.filter(Q(title__icontains=query) | Q(author__name__icontains=query))
            if books:
                return render(request, 'bookslib/search.html', {'books':books})
        else:
            return redirect('bookslib/home.html')
    return redirect('bookslib/home.html')   

我已将此路径添加到我的主项目的 urls.py

enter code here
+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

我的图片在 媒体/图片/ media 目录位于我的项目和应用程序存储的目录中。 请帮助我。 如果您需要其他信息,请告诉我。 提前谢谢你。

【问题讨论】:

    标签: python django python-3.x django-templates


    【解决方案1】:

    尝试将您的文件放在静态文件夹中,并在 setting.py 上进行设置。

    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    TEMPLATE_DIR = os.path.join(BASE_DIR,'templates')
    STATIC_DIR = os.path.join(BASE_DIR,'static')
    MEDIA_DIR = os.path.join(BASE_DIR,'media')
    
    if DEBUG == False:
        STATIC_URL = '/static/'
        #STATICFILES_DIRS = [STATIC_DIR,"/var/www/static"]
        STATIC_ROOT = os.path.join(BASE_DIR,"static")
        MEDIA_ROOT = MEDIA_DIR
        MEDIA_URL = '/media/'
    
    else:
        MEDIA_URL = '/media/'
        STATIC_URL = '/static/'
    

    然后运行 ​​python manage.py collectstatic 您的静态文件将全部移动到 settings.py 中定义的 /static 文件夹。 要引用您的图像,您将使用静态文件夹中图像的路径: &lt;img src="/static/name_of_your_image" height="250px" width="200px"&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-20
      • 2021-02-01
      • 2013-04-12
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 2012-11-29
      • 1970-01-01
      相关资源
      最近更新 更多