欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Django:上传图片并显示

程序员文章站 2022-07-15 11:54:12
...

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/;
    }