- 设置settings.py文件中的MEDIA_ROOT和MEDIA_URL属性
MEDIA_ROOT 用于保存用户上载文件的目录的绝对文件系统路径。
MEDIA_URL 处理从中提供的媒体的URL MEDIA_ROOT
,用于管理存储的文件。如果设置为非空值,则必须以斜杠结尾。
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/')
MEDIA_URL = '/media/'
- 设置ImageField属性
class Goods(models.Model):
icon = models.ImageField(verbose_name='商品封面',upload_to='goods_icon/', null=True, blank=True)
upload_to
是路径,图片的真实路径为:host+settings.py文件的MEDIA_ROOT路径+upload_to+图片名。
- 给前端返回图片的URL
def json(self):
return {
'icon': self.icon.url if self.icon else ''
}
这里不能直接返回icon.url, 因为当icon为空时,就会报错了。做一个空值判断。
- 加载图片路径到服务器URL中
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
网友评论