django学习——media处理上传图片、文件方法设置
2018-01-05 10:38
851 查看
版本:
对于用户上传文件的存储,一般采用media进行处理。以用户头像为例进行说明,处理方法如下:
1、模型建立
自定义用户,并完成头像(image)的字段设计,定义了头像的类型,ImageField,以及上传位置。
2、建立media文件夹
一般将用户上传的文件放置在media文件夹中。
3、setting.py中设置
主要有三个地方需要设置:
MEDIA_URL = ‘/media/’,设置该路径为了在模板中定位图片的位置,
MEDIA_ROOT = os.path.join(BASE_DIR, ‘media’) , 设置该路径是为了将新建的‘media’添加到根搜索路径下,这样在建立用户模型时的
设置TEMPLATES中的上下文管理器,添加media进来,如果不添加的话,模板中的{{ MEDIA_URL }}会找不到地址的。
4、配置url
因为浏览器中显示图片,会从如下地址中寻找:
af52
的。配置方法如下:
经过如上几个步骤,便可以通过后台将图片写入数据库中,并从前端展示出来了。缺一不可!
django 1.11
对于用户上传文件的存储,一般采用media进行处理。以用户头像为例进行说明,处理方法如下:
1、模型建立
from django.db import models from django.contrib.auth.models import AbstractUser from datetime import datetime class UserProfile(AbstractUser): """ 自定义用户 """ nick_name = models.CharField(max_length=20, verbose_name='昵称', default='') address = models.CharField(max_length=200, verbose_name='地址', default='') telephone = models.CharField(max_length=11, verbose_name='手机') gender = models.CharField(max_length=10, choices=(('male', '男'), ('female', '女')), default='male', verbose_name='性别') birthday = models.DateField(verbose_name='生日', null=True, blank=True) image = models.ImageField(max_length=100, upload_to='users/image/%Y/%m', default='users/image/default_big_14.png', verbose_name='头像') class Meta: verbose_name = '用户信息' verbose_name_plural = verbose_name def __str__(self): return self.username
自定义用户,并完成头像(image)的字段设计,定义了头像的类型,ImageField,以及上传位置。
2、建立media文件夹
一般将用户上传的文件放置在media文件夹中。
3、setting.py中设置
主要有三个地方需要设置:
MEDIA_URL = ‘/media/’,设置该路径为了在模板中定位图片的位置,
<img src="{{ MEDIA_URL }}{{ user.image }}"/>这样便可以从浏览器中得到头像的url地址,从而显示出来
MEDIA_ROOT = os.path.join(BASE_DIR, ‘media’) , 设置该路径是为了将新建的‘media’添加到根搜索路径下,这样在建立用户模型时的
image = models.ImageField(max_length=100, upload_to='users/image/%Y/%m',, upload_to 指定的是相对闻之,通过设定MEDIA_ROOT,便可以将头像存储在:127.0.0.1:8000/meida/user/image/%Y/%m,目录下了。
设置TEMPLATES中的上下文管理器,添加media进来,如果不添加的话,模板中的{{ MEDIA_URL }}会找不到地址的。
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates'),], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'django.template.context_processors.media', ], }, }, ]
4、配置url
因为浏览器中显示图片,会从如下地址中寻找:
127.0.0.1:8000/meida/user/image/%Y/%m, 如果不配置media的url地址的话,该图片是无法被找到
af52
的。配置方法如下:
from django.conf.urls import url from django.views.static import serve from mxonline3.settings import MEDIA_ROOT urlpatterns = [ #配置上传文件的访问处理函数 url(r'^media/(?P<path>.*)$', serve, {'document_root': MEDIA_ROOT}), ]
经过如上几个步骤,便可以通过后台将图片写入数据库中,并从前端展示出来了。缺一不可!
相关文章推荐
- Django ====> 1.4版本静态文件路径设置--MEDIA_ROOT,MEDIA_URL, STATIC_ROOT, STATIC_URL学习
- Django中,图片显示问题--Django中静态文件处理方法指南
- django的文件 图片上传(简单方法)
- Django1.8将Debug设置为False时访问不到图片和静态文件方法
- python学习(五)-Django处理从页面上传的文件
- Django 上传文件media的url处理
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
- Django 批量保存图片文件 自定义上传方法
- PHP设置图片文件上传大小的具体实现方法
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- PHP设置图片文件上传大小的具体实现方法
- PHP设置图片文件上传大小的具体实现方法
- PHP设置图片文件上传大小的方法
- Django中,图片显示问题--Django中静态文件处理方法指南
- PHP设置图片文件上传大小的方法
- 图片通用上传文件类(处理水印,缩略图)
- ASP.NET2.0文件上传以及图片处理 (转载)
- ASP.Net中设置web.config文件上传大文件方法
- webconfig文件中设置上传文件的大小实现方法
- PHP学习文件处理与文件上传 课件第1/2页