Django學習手冊 - ORM - ImageField數據類型


前置步驟

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頁面

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM