Py学习  »  Django

Django正确显示ImageField上传的图像

J Lee • 5 年前 • 1482 次点击  

我正在使用django构建自己的porfolio,我刚刚有一个关于使用imagefield上传图像的问题。

我使用imagefield通过管理页面上传了一个图像,经过长时间的搜索,终于让我的页面成功地显示了图像。

urls.py

from django.contrib import admin
from django.urls import include, path
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('',include('pages.urls')), # main landing page
    path('admin/', admin.site.urls), 
    path('project/',include("projects.urls"))
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

projects.html

<img src="{{project.image.url}}">

然而,django官方文档表示,这不是部署django站点的好方法。这是为什么,显示图像的最佳/正确方法是什么?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/44319
 
1482 次点击  
文章 [ 1 ]  |  最新文章 5 年前
ruddra
Reply   •   1 楼
ruddra    5 年前

原因也在 documentation :

这种方法效率很低,可能不安全,因此不适合生产。

在生产中部署媒体文件的正确方法是使用反向代理服务器(如nginx或apache),或者也可以使用与s3兼容的存储(如amazons3)来提供这些媒体文件。我可以在nginx中为您提供一个用于提供媒体文件的示例配置:

location /media {
    alias /path/to/media/direcoty; # Change to your own media directory here.
    access_log off;
}