iT邦幫忙

2023 iThome 鐵人賽

DAY 28
0
自我挑戰組

轉職新手學 Django 及 DRF系列 第 28

Day 28 - 中場暫停(四) Python 及 Django 的圖片處理

  • 分享至 

  • xImage
  •  

做完了基本的 CRUD 功能,接著就先介紹 Python 處理圖片的 library,以及介紹 Django 中處理此類檔案的方法。

pillow

讓 Python 可以處理圖片的一個常用 library,主要有以下功能:

  • 開啟圖片及轉檔:可以開啟多種不同檔案格式的圖片(如 JPEG, GIF, PNG 等),以及切換圖片檔案格式。
  • 圖片處理:可以調整大小、裁剪、製作縮圖、旋轉或是翻轉圖片,也可以調整亮度及對比度等其他數值。

此 library 先前已經安裝在此專案的虛擬環境中了,所以不用再安裝一次。接下來介紹一下 Django 如何處理圖片類型的檔案。

Django static file & media file

在 Django 建立的網站中常需要額外的圖片、HTML、CSS 或是 JavaScript 等檔案才能良好運作,此類型檔案稱為 static files;若是使用者上傳的圖片則是歸類成 media files。兩種檔案在 Django 有不同的配置方法。

以下介紹的配置方式不適用於 production。額外補充:production 的配置方式

static file 在創建專案時 Django 會自動配置好,在settings.py中就可以看到相關程式碼:

INSTALLED_APPS = [
    # ...
    'django.contrib.staticfiles',
]
# ...
STATIC_URL = 'static/'

而 media files 需要自己配置路徑,在settings.py中加入:

# ...
MEDIA_URL = 'media/'
MEDIA_ROOT = BASE_DIR / 'media'

這樣設定後,使用者上傳圖片時 Django 便會創建一個 rest_api/media 的資料夾存放圖片檔。接著到 rest_api/urls.py 中加入程式碼:

from django.conf import settings
from django.conf.urls.static import static
# ...

urlpatterns = [
    # ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

儲存後就大功告成!

結語

簡單介紹完 pillow 以及配置完 media file 的處理方式後,接下來就可以開始實作了!下篇文章見~


上一篇
Day 27 - 製作 API (六) 完成 Book API 功能
下一篇
Day 29 - 製作 API(七) 為 Book 增加圖片上傳功能
系列文
轉職新手學 Django 及 DRF30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言