社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Django

Django正确显示ImageField上传的图像

J Lee • 5 年前 • 1478 次点击  

我正在使用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
 
1478 次点击  
文章 [ 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;
}