• django MEDIA_URL 和 MEDIA_ROOT 如何配置


    在 Django 中,MEDIA_URLMEDIA_ROOT 用于处理用户上传的文件。以下是它们的配置方法:

    1. MEDIA_ROOT

    MEDIA_ROOT 是一个文件系统路径,用于告诉 Django 在服务器上存储上传文件的位置。

    例如,可以在 settings.py 文件中这样配置:

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

    2. MEDIA_URL

    MEDIA_URL 是一个 URL 前缀,用于指向 MEDIA_ROOT 中存储的文件。用户可以通过这个 URL 前缀来访问这些文件。

    settings.py 文件中可以这样配置:

    MEDIA_URL = '/media/'
    

    3. 配置 urls.py

    为了使用户能够访问上传的文件,需要在项目的 urls.py 文件中添加如下配置:

    from django.conf import settings
    from django.conf.urls.static import static
    from django.urls import path
    
    urlpatterns = [
        # 你项目中的其他 URL 模式
    ]
    
    if settings.DEBUG:
        urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
    

    示例配置

    假设你的项目结构如下:

    my_project/
        my_app/
        media/
        my_project/
            settings.py
            urls.py
        manage.py
    

    settings.py 中:

    import os
    
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    
    MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
    MEDIA_URL = '/media/'
    

    urls.py 中:

    from django.conf import settings
    from django.conf.urls.static import static
    from django.urls import path
    
    urlpatterns = [
        # 你项目中的其他 URL 模式
    ]
    
    if settings.DEBUG:
        urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
    

    注意事项

    1. DEBUG 模式: 上述 urlpatterns 配置适用于开发环境。在生产环境中,通常使用 Nginx 或 Apache 等服务器来提供静态文件服务,而不是让 Django 来处理。
    2. 确保目录存在: 确保 MEDIA_ROOT 指向的目录存在,并且 Django 对该目录有写权限。

    这样配置后,Django 就可以正确处理和提供用户上传的文件了。

  • 相关阅读:
    kafka学习笔记07
    微服务技术
    【经验之谈】关于维修电子设备的几点建议和经验
    Go 代码块与作用域,变量遮蔽问题详解
    服了,攻城狮的酒后真言竟然是这些?
    centos-7安装mysql-8
    Pytorch -> ONNX -> TensorRT 模型转换与部署
    图像的特征类别
    SpringMVC的工作流程
    MySQL高级SQL语句(二)
  • 原文地址:https://blog.csdn.net/u010674101/article/details/139521638