前置步驟
setting.py文件配置:
添加app目錄
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'app01', ]
添加media文件和路徑
PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname('__file__'))) MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
app目錄下models.py配置
from django.db import models # Create your models here. class Test(models.Model): name = models.CharField(max_length=50) image = models.ImageField(upload_to='logo/')
注意:
ImageField() 依賴 Pillow (pip install Pillow)
這里login是目錄路徑 完整的路徑是 /media/logo/圖片
這里圖片可以通過Django admin后台直接添加
所有設置一下app里 admin.py文件
from django.contrib import admin from app01.models import Test # Register your models here. admin.site.register(Test)
引入models 中的Test類 然后 admin.site.register(Test)
接着加載數據庫 寫入數據庫
創建超級用戶
然后就是正常的Django訪問配置了:
urls.py配置
注意!!! 這里必須要添加static 目錄,后端通過傳遞/media/logo/圖片,而這里是將圖片傳遞到前端瀏覽器,這樣才能訪問路徑的圖片
from django.contrib import admin from django.urls import path from app01 import views from django.conf.urls import url from django.conf import settings from django.conf.urls.static import static urlpatterns = [ path('admin/', admin.site.urls), url(r'index/', views.index), ] urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
views.py配置
from django.shortcuts import render,HttpResponse from app01 import models # Create your views here. def index(request): img = models.Test.objects.all() # img = models.Test.objects.filter(id=1)[0].image.url return render(request,'index.html',{'img':img})
從數據庫中讀取圖片路徑 然后傳遞到前端頁面.
前端頁面:
后台傳遞的若是: img = models.Test.objects.all()
前端則是:
<body> {% for i in img %} <img src="{{ i.image.url}}"> {% endfor %} </body>
后台傳遞的若是:img = models.Test.objects.filter(id=1)[0].image.url
前端則是:
<body> {{ img }} </body>
測試:
添加圖片以后再 訪問index頁面