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可能是不需要的

  • 相关阅读:
    laravel 使用构造器进行增删改查
    explan各项说明
    data函数参数
    php引用
    PHP开发api接口安全验证方法一
    redis主从配置
    php 实现同一个账号同时只能一个人登录
    MySQL慢查询1- 开启慢查询
    前端基础 & 初识HTML
    HTTP协议概述
  • 原文地址:https://www.cnblogs.com/longyunfeigu/p/9166874.html
Copyright © 2011-2022 走看看