django將圖片上傳資料庫後在前端顯式
阿新 • • 發佈:2019-02-03
1、使用ImageField先安裝pillow模組
pip install pillow
2、在app的models中設定
class Image(models.Model):
pic_name=models.CharField('圖片',max_length=40)
pic_path=models.ImageField(upload_to="pic_folder/",default='pic_folder/None/no_image.pig')
3、在app的view中設定獲取圖片的方法
def upload_pic(request):
pic=Image.objects.all()
return render(request,'blog/image.html',{'pic':pic})
4、在settings中設定
1、新增media模板
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(os.path.dirname(__file__), 'templates'),os.path.join(os.path.dirname(__file__), 'static'), ],
'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',
],
},
},
]
2、設定media的路徑
MEDIA_URL='media/'
MEDIA_ROOT=os.path.join(BASE_DIR,'media').replace('\\','/')
5、在app的urls中設定
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
url(r'^pic$', views.upload_pic, name='upload_pic')
]+static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
通過admin登入後上傳圖片,會在站點下生成media/pic_folder的目錄