django實現圖片上傳和顯示
阿新 • • 發佈:2018-07-11
代碼 ngs 文件路徑 ont 添加 pac pre bubuko contex
首先安裝pillow模塊
在models.py下設置
class Notices(models.Model):
NoticeCategory=models.CharField(max_length=10,default=‘‘) #新聞分類
NoticeImagePath=models.ImageField(upload_to=‘img‘)
這裏的upload_to是指將圖片存放在哪個位置
在views.py中設置獲取圖片的方法
def index(request): Notice_list = Notices.objects.all().order_by(‘NoticeData‘)[:10] return render(request, ‘index.html‘, {‘Notice_list‘: Notice_list})
我這裏是獲取整個notices列表。
在setting中設置:
MEDIA_ROOT = os.path.join(BASE_DIR, ‘media‘).replace(‘\\‘, ‘/‘) #設置靜態文件路徑為主目錄下的media文件夾 MEDIA_URL = ‘/media/‘
在上傳圖片時會自動生成media這個文件夾
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‘,#新增加的一行], }, }, ]
在urls中添加
urlpatterns = [
url(‘admin/‘, admin.site.urls),
url(r‘^std_web/‘, include(‘std_web.urls‘, namespace=‘std_web‘)),
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
在index.html中
<a href="{{Notice_list.NoticeImagePath.url}}"><img src="{{Notice_list.NoticeImagePath.url}}"></img></a>
具體顯示圖片代碼。
django實現圖片上傳和顯示