media配置及把用户头像从数据库展示到前端的操作方法

目录
  • 写在前面
  • 1.media配置
    • 1.1 配置用户上传文件的存储位置
    • 1.2 开设后端指定资源
  • 2.用户头像展示

写在前面

其实media配置也可以完全用static代替(看你自己的选择),static代替的方法是直接在mobles.py里设置用户上传头像的时候,修改一下用户上传头像时的保存位置

当设置成static/avatar/之后,我们后期在获取用户上传的文件时就可以在其前面加一个static就可以获取到了(相当于获取静态文件资源!!)

1.media配置

在django中,我们所需的静态文件资源默认是放在static文件夹下的
用户上传的文件也应该单独放在某个文件夹下

media配置的作用:该配置可以让用户上传的所有文件都固定的存放在某一个指定的文件夹下

后期我们在从数据库存取对应用户上传的文件时,也可以相对应的取出

1.1 配置用户上传文件的存储位置

在setting.py中书写以下代码:
	MEDIA_ROOT = os.path.join(BASE_DIR,'media')
	# 用户上传的文件都会放在项目文件的media文件夹里
	# 不需要自己创建该文件夹,用户上传文件之后,系统会自动帮你创建

1.2 开设后端指定资源

在urls.py中书写以下指定代码:

    # 暴露后端指定文件夹资源
    re_path(r'^media/(?P<path>.*)',serve,{'document_root':settings.MEDIA_ROOT})
    # 上述固定写法,media是和static一个意思,url遇见media会自动去后面settings.MEDIA_ROOT配置好的路径找对应的资源

2.用户头像展示

# {{ article_obj.blog.userinfo.avatar }}是获取文件当时的存储位置
# 加个media是指遇见media就去media文件夹里找用户上传的文件
 <img class="media-object" src="/media/{{ article_obj.blog.userinfo.avatar }}" alt="..." width="60">

到此这篇关于media配置及把用户头像从数据库展示到前端的文章就介绍到这了,更多相关media配置内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2022-09-20

django 配置阿里云OSS存储media文件的例子

1. 安装django-aliyun-oss2-storage包 linux上用 pip install django-aliyun-oss2-storage 无报错,顺利安装 windows上报错: (python3_sbs) F:\projects\virtualenv\python3_sbs\Scripts>pip install django-aliyun-oss2-storage Collecting django-aliyun-oss2-storage Using cached dj

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 signals 信号作用及用法详解

1.Model signals django.db.models.signales 作用于django的model操作上的一系列信号 1)pre_init() django.db.models.signals.pre_init 当模型实例化时调用,在__init__()之前执行 三个参数: pre_init(sender, args, kwargs): sender:创建实例的模型类 args:参数列表 kwargs:通过字典形式传递的参数 2)post_init() django.db.mod

Python Django的安装配置教程图文详解

Django 教程 Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的网站和APP都基于Django. Django是一个开放源代码的Web应用框架,由Python写成. Django遵守BSD版权,初次发布于2005年7月, 并于2008年9月发布了第一个正式版本1.0 . Django采用了MVC的软件设计模式,即模型M,视图V和控制器C. 学习Django前,我们要确定电脑上是否已经安装了Python,目前Python有两个版本,不过这两个版

Django model select的多种用法详解

<Django model update的各种用法介绍>文章介绍了Django model的各种update操作,这篇文章就是她的姊妹篇,详细介绍Django model select的用法,配以对应MySQL的查询语句,理解起来更轻松. 基本操作 # 获取所有数据,对应SQL:select * from User User.objects.all() # 匹配,对应SQL:select * from User where name = '运维咖啡吧' User.objects.filter(

django框架中间件原理与用法详解

本文实例讲述了django框架中间件原理与用法.分享给大家供大家参考,具体如下: 中间件:轻量级,介于 request和response之间的一道处理过程,在全局上改变了输入和输出 在django中就默认使用了七个中间件 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.

Python3中configparser模块读写ini文件并解析配置的用法详解

Python3中configparser模块简介 configparser 是 Pyhton 标准库中用来解析配置文件的模块,并且内置方法和字典非常接近.Python2.x 中名为 ConfigParser,3.x 已更名小写,并加入了一些新功能. 配置文件的格式如下: [DEFAULT] ServerAliveInterval = 45 Compression = yes CompressionLevel = 9 ForwardX11 = yes [bitbucket.org] User =

Django ModelForm组件原理及用法详解

这是一个神奇的组件,通过名字我们可以看出来,这个组件的功能就是把model和form组合起来.先来一个简单的例子来看一下这个东西怎么用: 比如我们的数据库中有这样一张学生表,字段有姓名,年龄,爱好,邮箱,电话,住址,注册时间等等一大堆信息,现在让你写一个创建学生的页面,你的后台应该怎么写呢? 首先我们会在前端一个一个罗列出这些字段,让用户去填写,然后我们从后天一个一个接收用户的输入,创建一个新的学生对象,保存起来. 其实,重点不是这些,而是合法性验证,我们需要在前端判断用户输入是否合法,比如姓名

Springboot mybatis-plus配置及用法详解

本节内容扩展介绍下针对mybatis的增强工具mybatis-plus,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 二话不多说,我们先写编写个简单的例子,让大家先初步的了解下mybatis-plus. 1.mybatis-plus初步实例 (1)创建一个spring boot web工程(具体创建过程就不再演示了,还不会的同学去看看spring boot专题第一节内容) (2)引入依赖 <!--web项目依赖--> <dependency> <g

Django 内置权限扩展案例详解

当Django的内置权限无法满足需求的时候就自己扩展吧~ 背景介绍 overmind项目使用了Django内置的权限系统,Django内置权限系统基于model层做控制,新的model创建后会默认新建三个权限,分别为:add.change.delete,如果给用户或组赋予delete的权限,那么用户将可以删除这个model下的所有数据. 原本overmind只管理了我们自己部门的数据库,权限设置只针对具体的功能不针对细粒度的数据库实例,例如用户A 有审核的权限,那么用户A 可以审核所有的DB,此

Django单元测试中Fixtures用法详解

在使用单元测试时,有时候需要测试数据库中有数据,这时我们可以使用Django的Fixtures来生成测试数据. Django是一个开放源代码的Web应用框架,由Python写成.采用了MVT的软件设计模式,即模型Model,视图View和模板Template.2005年7月在BSD许可证下发布. 在对Django项目做单元测试时,经常需要生成或者导入一些初始数据.对于已经有数据存在于正式数据库的app来说,使用Fixture 载入数据,是最简便有效的方法. 本文通过配置myapp.json,te