Django之settings.py 的media路径设置

在一个 models 中使用 FileField 或 ImageField 需要以下步骤:

1. 在你的 settings.py文件中, 定义一个完整路径给MEDIA_ROOT 以便让 Django在此处保存上传文件.定义MEDIA_URL 作为该目录的公共 URL. 要确保该目录对 WEB 服务器用户帐号是可写的.

2. 在你的 models.py 中添加 FileField 或 ImageField, 并确保定义了upload_to 选项,以告诉 Django 使用MEDIA_ROOT 的哪个子目录保存上传文件.

3. 你的数据库中要保存的只是文件的路径(相对于 MEDIA_ROOT). 要想得到这个文件的路径可以用.url方法。在Html模板里通过{{object.photo.url}}得到该图片的路径。

settings.py 设置

MEDIA_URL = '/uploads/'

MEDIA_ROOT = os.path.join(BASE_DIR,  'uploads')

urls.py 映射路径

url(r"^uploads/(?P<path>.*)$", django.views.static.serve, {"document_root": settings.MEDIA_ROOT, })

models.py 上传图片字段设置

avatar = models.ImageField(upload_to='avatar/%Y/%m', default='avatar/default.png', max_length=200, blank=True, null=True, verbose_name='用户头像')
原文地址:https://www.cnblogs.com/jasonhaven/p/7515538.html