zoukankan      html  css  js  c++  java
  • Django 配置media文件

    为什么要配置media

    ​ 我们自己写的本地网页,不配置media也能访问到项目下的静态文件。但是当项目部署到服务器之后,就无法访问本地的静态文件了。所以为了让项目部署到服务器之后,能够访问静态文件,需要配置media。

    1、项目根目录下新建media文件夹

    media文件夹就是静态文件上传保存的路径

    2、settings.py中添加如下内容

    # settings.py
    import os
    
    # Django项目自动配置好的根路径
    BASE_DIR = os.path.dirname(os.path.diname(os.path.abspath(__file__)))
    
    
    # TEMPLATES中新添'django.template.context_processors.media'
    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [os.path.join(BASE_DIR, 'templates')]
            ,
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                    # 下面这句是新添加的内容
                    'django.template.context_processors.media',
                ],
            },
        },
    ]
    
    # 配置media文件夹的路径
    MEDIA_URL = '/media/'
    MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
    

    3、urls文件中配置路由

    # 总项目urls.py
    
    from django.views.static import serve
    from . import settings
    
    urlpatterns = [
        # server是一个视图函数server(request, path), 通过path找到文件然后返回response
        # 字典中的document_root是默认参数,不是前端和后端传过来的
        url(r'media/(?P<path>.*)$', server, {'document_root': settings.MEDIA_ROOT})
    ]
    

    4、模板中使用

    ...
    
    # {{img.url}}是图片路径
    <img class="media-object" src="{{ MEDIA_URL }}{{img.url}}" alt="hahaha">
    
    ...
    
  • 相关阅读:
    高精度乘除运算优化
    高精度除法
    高精度乘法
    期末考试
    P2341 [HAOI2006]受欢迎的牛[SCC缩点]
    P2002 消息扩散[SCC缩点]
    神奇搜索算法A*
    P3205 [HNOI2010]合唱队[区间dp]
    P4170 [CQOI2007]涂色
    P1220 关路灯[区间dp]
  • 原文地址:https://www.cnblogs.com/17vv/p/11677326.html
Copyright © 2011-2022 走看看