• static & media配置



    在Django应用的文件夹下,经常会发现这两个文件夹:static, media; static称为静态文件夹,用于存放CSS, JavaScript, 网站logo等不变的文件;相对的,把media称为媒体文件夹,用于存放用户上传的图片。

    static 配置和使用
    配置项目的settings.py:
    STATIC_URL = '/static/' # 静态文件别名(相对路径) 和 绝对路径
    STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'app01/static'),
    )
    # STATIC_ROOT 配置部署的时候才用

    使用:
    {% load static %}
    <img src="{% static 'img/default.jpg' %}" alt="default_photo"/>

    media 配置和使用
    如果需要保存用户上传的图片或文件,需要作如下配置:

    配置项目的settings.py:
    MEDIA_URL = "/media/" # 媒体文件别名(相对路径) 和 绝对路径
    MEDIA_ROOT = (
    os.path.join(BASE_DIR, 'app01/media')
    )

    配置路由:
    from django.conf.urls import url
    from django.views.static import serve
    from . import settings

    urlpatterns = [
    # ... the rest of your URLconf goes here ...
    url(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT})

    models.py中设置上传图片/文件字段:
    from django.db import models


    class UserInfo(models.Model):
    username = models.CharField(verbose_name='用户名', max_length=32)
    avatar = models.FileField(verbose_name='头像', upload_to='upload/avatar/')

    upload_to相当于上传到app01/media/upload/avatar/目录下。

    注意:

    FileField或ImageField字段适用于存储文件/图片,出于性能考虑,文件并不直接保存到数据库,而是保存在文件系统里,因此该字段只是记录一个路径而已。

    这个路径是相对于MEDIA_ROOT的,要想得到文件/图片的绝对路径,需要用.url方法。比如,要在页面中显示用户user_obj的头像,那么在模板中可以这样写:

    <img src="{{ user_obj.avatar.url }}" alt="user_avatar">

  • 相关阅读:
    团队活动
    实力提升
    软工人必须要知道的几个工具
    博客/论坛:(技术分享)
    CSS怎样设置多个字体,设置多个字体的时候要注意什么
    canvas绘制bitmap全部填充(当bitmap的宽高小于绘制区域的时候)
    CSS字体
    weditor元素定位异常
    python ImportError: C extension: DLL load failed while importing strptim
    python:导入不同路径下相同名称的模块
  • 原文地址:https://www.cnblogs.com/modengdai/p/10390071.html
Copyright © 2020-2023  润新知