美文网首页djangoDjango
Django Media URL的配置

Django Media URL的配置

作者: MingSha | 来源:发表于2017-12-28 17:15 被阅读288次

    在Django中经常需要配置图片、视频等表态文件,在配置时较为复杂,这里纪录一下:

    一、Settings.py中的配置

    在文件尾部加入以下目录,用于存放上传的文件

    MEDIA_URL = '/media/'
    MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
    

    二、在models.py中的配置

    在models中写上image字段其中%Y代表年,%m代表月,blank=True代表可以为空。当上传文件时,代表上传到image目录下,以当前年月子目录的文件夹中。
    image = models.ImageField(upload_to="image/%Y/%m", blank=True)

    image.png
    在数据库中会显示为路径如下所示:
    image.png

    三、在模板中的配置

    <img class="mb-3 mr-3" src="{{ MEDIA_URL }}{{ comment.image }}">
    

    其中src中的{{ MEDIA_URL }}会在模板中渲染为第一步中的/media/

    image.png

    四、配置settings.py中的TEMPLATES

    如果您想在模板中使用{{MEDIA_URL}},请在“模板”的“context_processors”选项中添加django.template.context_processors.media
    通过以上步骤,基本上可以在前端正常渲染出结果了,但还需要给图片添加一个URL以正常显示。

    五、在URL.py中的配置

    from django.views.static import serve
    from project.settings import MEDIA_ROOT
    

    第一行为引入静态文件的serve,第二行为导入工程配置文件中的MEDIA_ROOT
    在url中加入:

        url(r'^media/(?P<path>.*)$', serve, {"document_root":MEDIA_ROOT})
    

    即可大功告成。

    image.png

    相关文章

      网友评论

      • Leo_23:谢谢,正确得到了图片

      本文标题:Django Media URL的配置

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