【问题标题】:images does not appear in html, it is apearing like it is broken图像没有出现在 html 中,它看起来像是坏了
【发布时间】:2019-06-14 07:59:30
【问题描述】:

注意:当我转到 [http://127.0.0.1:8000/media/images/download.jpeg] 时,它会将我带到主页,而 url 是 [http://127.0.0.1:8000/media/images/download.jpeg]

图片没有出现在 html 中,请查看那里的代码,请告诉我是什么问题。

models.py

from django.db import models

class jop(models.Model):
    image = models.ImageField(upload_to='images/')
    summary = models.CharField(max_length=200)

views.py

from django.shortcuts import render
from .models import jop

在此处创建您的视图。

def home(request):
    jops = jop.objects
    return render(request, 'jops/home.html', {'jops':jops},)

home.html

 <div class="album py-5 bg-light">
    <div class="container">
      <div class="row">
        {% for jop in jops.all %}
        <div class="col-md-4">
          <div class="card mb-4 shadow-sm">
            <img src="{{jop.image.url}}"/>
            <p class="card-text">{{ jop.summary }}</p>
          </div>
       </div>
      </div>
        {% endfor %}

    </div>
  </div>

urls.py

from django.conf.urls import url
from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static

导入 jops.views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url('', jops.views.home, name='home'),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

settings.py

STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

【问题讨论】:

  • 您在 url 映射中的空 reguar 表达式将匹配所有内容。
  • 当您在浏览器中检查 img 源时您会看到什么,以及您在模型类中的字段名称 image.url
  • 感谢 Klaus D,您能帮忙吗,我没有理解您的意思,请写代码以便我理解 xD

标签: python django postgresql


【解决方案1】:

您需要为主页锚定并终止您的正则表达式,否则它将匹配包括您的图片 URL 在内的所有内容。

url('^$', jops.views.home, name='home'),

或者,使用新的路径语法:

path('', jops.views.home, name='home'),

【讨论】:

    猜你喜欢
    • 2016-01-08
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    • 2013-11-06
    • 2016-05-24
    • 2016-12-12
    • 1970-01-01
    相关资源
    最近更新 更多