Django:上传图片并显示

1. Django静态文件分类

Django的静态文件有两类,分别为staticmedia

  • static:用以存放:js、css、image
  • media:用以存放上传的文件或图片

2. 上传图片实战

django用MEDIA_URLMEDIA_ROOT处理media

2.1 创建media文件夹存放上传图片
mkdir media/test
2.2 修改setting.py文件

增加MEDIA_URLMEDIA_ROOT

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "media").replace('\\','/')
2.3 修改urls.py文件

导入:

from django.conf.urls.static import static
from django.conf import settings

修改urlpatterns:

urlpatterns = [
    url(r'^xadmin/', include(xadmin.site.urls)),
]  + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

在本地调试需要将setting.py文件中,DEBUG设置为True

2.4 创建models.py
class Site(models.Model):
    id = models.AutoField(primary_key=True)
    image = models.ImageField(u'favicon',upload_to="test/")

注意:upload_to选项

3. 生产服务器

使用nginx处理django静态文件,nginx.conf文件media配置如下:

    location /media {
        expires 30d;
        autoindex on;
        add_header Cache-Control private;   
            alias /opt/project/media/;
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容