zoukankan      html  css  js  c++  java
  • Django 静态文件和媒体文件配置

    Django 静态文件和媒体文件配置

    python manage.py runserver 80DEBUG=Ture时候才加载静态文件,False不加载静态文件。

    在部署时设置DEBUG=False才加载静态文件

    settings文件设置如下:

    STATIC_ROOT = 'assets'
    STATIC_URL = '/static/'
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'static')
    ]
    
    # 上传媒体文件
    MEDIA_ROOT = 'media'  # 项目下的目录
    MEDIA_URL = "/media/"  # 跟STATIC_URL类似,指定用户可以通过这个url找到文件
    

    models中设置上传字段:

    class UserProfile(models.Model):
        username = models.ForeignKey(User, related_name='User_Profiles', on_delete=models.CASCADE)
        avatar = models.FileField(upload_to='avatar', blank=True,null=True, verbose_name='头像')
    

    数据库中保存结果:avatar/12.png,存放在media/avatar/12.png

    模板中引用:

    现在settings中设置:

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [
                os.path.join(BASE_DIR, 'templates')
            ],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    '这里省略了,下面这个才是重要的',
                    'django.template.context_processors.media',
                ],
            },
        },
    ]
    
    

    在URL.py中的配置

    from django.conf import settings
    from django.conf.urls.static import static
    
    urlpatterns = [
        # 这里是你的URL
    
    ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    
    

    在模板中引用:

    <img src="{{ MEDIA_URL }}{{ user.User_Profiles.first.avatar }}" alt="{{ user.username }}" class="w-100 rounded">
    
  • 相关阅读:
    144环形链表
    83. 删除排序链表中的重复元素
    21合并两个有序链表
    PyCharm2020激活破解教程
    Python正课目录
    2条pip命令解决Python项目依赖的导出和导出
    pip离线安装模块
    Python正课149 —— luffy项目 User表的配置
    Python正课148 —— luffy项目 数据库配置
    解决:django中LookupError No installed app with label 'admin'
  • 原文地址:https://www.cnblogs.com/Neroi/p/12465638.html
Copyright © 2011-2022 走看看