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">

原文地址:https://www.cnblogs.com/modengdai/p/10390071.html

时间: 2024-08-02 13:58:26

static & media配置的相关文章

django STATIC/MEDIA配置

配置示例 # setting.py配置如下 ## 访问 http://IP/static/***.css STATIC_URL = '/static/' ## python manage.py collectstatic时,把所有静态文件聚集到此目录下 STATIC_ROOT = os.path.join(BASE_DIR, 'static') ## 放置公共静态目录,jQuery.css这些公共静态文件 STATICFILES_DIRS = ( os.path.join(BASE_DIR, '

Django - 基于forms组件和Ajax实现注册登录 - FileField字段 - Media配置

一.基于forms组件的注册页面设计 点击头像==点击input 头像预览: 修改  获取用户选中的文件对象:获取文件对象的路径:修改img标签的src属性,让src=文件对象路径. register.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link

BBS media配置(用户头像展示)

media配置 1.作用: 1.规定静态文件上传存放路径(路径配置,文件夹不存在会自动创建) 2.可以将任意的后端资源暴露给用户(路由配置, 慎用). 2.场景: 网站所使用的静态文件默认都是放在static文件夹下 用户上传的静态文件 也应该放在一个固定的文件夹下 我们目前实现的是用户上传的头像 固定放在avatar文件夹下了 我们应该创建一个类似于static文件夹 里面在根据文件的不同创建不同的文件夹存储数据 3.具体使用(以暴露图片资源和应用app01的资源) 1.现在settings.

Django静态文件static的配置

Django静态文件static的配置 static文件夹的作用 ? static文件夹一般用于存放css,js,图片等静态文件 配置方式 ? 1.创建static文件夹 ? 2.在settings.py文件中新建一项(如果有则无需新建) STATIC_URL = '/static/' ? 3.在settings.py文件中新建一项 STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), ] ? 4.引用静态文件中的文件 ? 列如引用一个cs

django media配置

一 media是干什么的 media是指用户上传的文件,比如model里的FileField,ImageField上传的文件. 二 如何设置 在settings.py中,拼接处你想存放的地址. 绝对路径 MEDIA_ROOT:Absolute path to the directory that holds media. MEDIA_ROOT=os.path.join(BASE_DIR,'app01','media','upload') 相对路径 MEDIA_URL: URL that hand

课程模块表结构

课程模块 我们要开始写课程模块了~~课程模块都有哪些功能呢~~ 我们的课程模块,包括了免费课程以及专题课程两个方向~~ 主要是课程的展示,点击课程进入课程详细页面~~ 课程详细页面展示,课程的概述,课程的价格策略,课程章节,评价以及常见问题~~ 以及一些周边的字段~~~这是主线路~~ 根据功能设计表结构 对照着对标路飞网站,我们可以先讨论下表结构~~ 我们初步能够确定下来12张表~~ from django.db import models from django.contrib.content

简易配置Django的Static文件

http://blog.csdn.net/hireboy/article/details/8806098 Django 1.3以后,采用static方式处理静态文件,比如网站的css js images等等,而以前所谓的media改成处理网站自身以外的媒体文件了.media和static用途上容易混淆,请移步上次讲的<对Django media和static概念的理解>. 如果简单使用static,配置起来会比media要少一步,下面会比较一下.说到static,不能不说说Django开发环境

【Django】MEDIA的配置及用法

如果需要在数据库中存储图片或视频类的数据,我们可以配置MEDIA. 下面的示例将以上传一张图片的形式来说明MEDIA的配置及用法. 第一步 settings.py # media配置 MEDIA_URL = 'media/' # 用于指定url路径 MEDIA_ROOT = os.path.join(BASE_DIR, "媒体库") # 用于指定上传文件的存储路径 第二步 urls.py from django.conf.urls import url from django.cont

【Django】MEDIA的配置及用法 -- 2019-08-08 18:01:56

原文: http://106.13.73.98/__/73/ 如果需要在数据库中存储图片或视频类的数据,我们可以配置MEDIA. 下面的示例将以上传一张图片的形式来说明MEDIA的配置及用法. 第一步 settings.py # media配置 MEDIA_URL = 'media/' # 用于指定url路径 MEDIA_ROOT = os.path.join(BASE_DIR, "媒体库") # 用于指定上传文件的存储路径 第二步 urls.py from django.conf.u