美文网首页
Django:上传图片并显示

Django:上传图片并显示

作者: 一直小鱼 | 来源:发表于2017-04-27 19:59 被阅读1635次

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

    相关文章

      网友评论

          本文标题:Django:上传图片并显示

          本文链接:https://www.haomeiwen.com/subject/dqjnzttx.html