我是 django 的新手,我一直在玩上传图片然后显示它们。...很好地展示它们。
每当我尝试从模板显示图像时,我都会得到损坏的图像链接图标。
我正在使用 sqlite3 服务器
设置.py
ROOT_DIR = os.path.dirname(os.path.dirname(__file__))
def location(f):
return os.path.join(ROOT_DIR, f)
MEDIA_URL = 'http://127.0.0.1:8000/media/'
MEDIA_ROOT = location('media/')
模型.py
class Image(models.Model):
image = models.ImageField(upload_to = 'images/')
视图.py
from imageupload.settings import MEDIA_ROOT, MEDIA_URL
def main(request):
imgs = Image.objects.all()
return render_to_response('index.html', {'images': imgs, 'media_root': MEDIA_ROOT, 'media_url': MEDIA_URL})
网址.py
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
现在我刚刚使用管理员上传图片。这似乎工作正常,他们去我期望的地方
但是当我尝试显示它们时:
模板
<!DOCTYPE html>
<html>
<img src="<correct path to project>/media/images/photo_1.JPG" />
{% for img in images %}
<img src="{{ media_root }}{{ img.image.name }}" />
<img src="{{ media_url }}{{ img.image.name }}" />
<img src="{{ img.image.url }}" />
{% endfor %}
</html>
我得到每个破碎的图标。
浏览器源代码向我展示了:
<!DOCTYPE html>
<html>
<img src="<correct path to project>/media/images/photo_1.JPG" />
<img src="<correct path to project>/media/images/photo_1.JPG" />
<img src="http://127.0.0.1:8000/media/images/photo_1.JPG" />
<img src="http://127.0.0.1:8000/media/images/photo_1.JPG" />
</html>
有道理,我只上传了一张照片。
如果我复制其中一个硬链接并将其放入其他一些 html 文件中......它可以工作