zoukankan      html  css  js  c++  java
  • django media和static配置

    static 静态文件夹

    settings.py的配置

    STATIC_URL = '/static/'
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, "static")
    ]
    

    django项目我们默认把js和css文件都放在根目录的static目录下

    media 配置

    media 一般对应的是我们model字段ImageField的up_load参数,settings.py 配置

    # Django用户上传的都叫media文件
    MEDIA_URL = "/media/"
    # media配置,用户上传的文件都默认放在这个文件夹下
    MEDIA_ROOT = os.path.join(BASE_DIR, "media")
    

    url.py 文件需要加上一句

    from django.views.static import serve
    from django.conf import settings
    
    url(r'^media/(?P<path>.*)$', serve, {"document_root": settings.MEDIA_ROOT}),
    

    前端html使用

    <img class="media-object author-img" src="/media/{{ article.user.avatar }}" alt="...">
    

    models.py使用
    avatar = models.FileField(upload_to="avatars/", default="avatars/default.png", verbose_name="头像")
    就算根目录的media没有avatars,django也会帮我们自动创建avatars目录,数据库字段存的值是avatars/htest.png
    注意,当我们没有使用django media的时候,会在根目录创建avatars目录,数据库字段存的值仍然是avatars/htest.png
    提问:为什么要有media,因为前端需要拿到上传的图片,我们当然可以放到static目录里。但是,static放的是我们服务器开发的静态文件,
    media存放的是前端上传的文件,应该严格区分。在settings.py加了还需要加url,类比static,因为static是django已经帮我们配置了url,media不会帮我们配置,因为media可能是不需要的

  • 相关阅读:
    Spring之循环依赖与解决方案
    ipv4+ipv6网络中的DDNS
    NAT、PAT、DMZ、端口映射、端口转发、UPNP
    如何实现内外网或多网络环境下上网?路由route
    局域网学习MAC地址?ping+arp
    网络故障排查?ping和trace*
    有了MAC地址,为什么还要用IP地址?
    Nginx原理解析
    磁盘io
    last总结
  • 原文地址:https://www.cnblogs.com/longyunfeigu/p/9166874.html
Copyright © 2011-2022 走看看