django上传媒体文件至media的配置部署
在Django应用的文件夹下,经常会发现这两个文件夹:static, media; static称为静态文件夹,用于存放CSS, JavaScript, 网站logo等不变的文件;相对的,把media称为媒体文件夹,用于存放用户上传的图片。
第一步,在settings.py中配置media文件
# 配置头像上传路径
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
第二步在项目文件的urls.py中配置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})
]
在app的models.py中定义上传图片
class User(models.Model):
username = models.CharField(max_length=32, unique=True)
password = models.CharField(max_length=256)
email = models.CharField(max_length=64, unique=True)
sex = models.BooleanField(default=False)
icon = models.ImageField(upload_to='icons') # 头像上传到media/icons目录中
is_delete = models.BooleanField(default=False)
class Meta:
db_table = 'user'