一、需求分析:
一般在网站开发中,有很多类似于用户头像、用户上传的文件,这些经常要改变的媒体文件,需要有一个地方存放,于是就需要media目录,起到跟static类似的功能。
二、在settings.py中配置:
在TEMPLATES中:
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', ], }, }, ]
在settings.py中的最后追加代码:
MEDIA_URL="/media/" MEDIA_ROOT=os.path.join(BASE_DIR,"media")
三、在项目urls.py中增加:
...... from django.views.static import serve from xyw.settings import MEDIA_ROOT urlpatterns = [ ...... #配置上传文件的访问处理函数 path('media/<path:path>',serve,{'document_root':MEDIA_ROOT}), ]
四、在前端中使用:
<div id="portfoliolist"> {% for shop in all_shops.object_list %} <div class="portfolio shop" data-cat="shop"> <div class="portfolio-wrapper"> <!--引入media文件代码start--> <img src="{{ MEDIA_URL }}{{ shop.shop_image }}" alt="店铺封面" /> <!--引入media文件代码end--> <div class="label"> <div class="label-text"><a class="text-title">{{ shop.name }}</a><span class="text-category">{{ shop.shop_sn }}</span></div> <div class="label-bg"></div> </div>