91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django如何實現上傳圖片功能

發布時間:2020-09-11 13:36:02 來源:腳本之家 閱讀:137 作者:希希里之海 欄目:開發技術

前言

很多時候我們要用到圖片上傳功能,如果圖片一直用放在別的網站上,通過加載網址的方式來顯示的話其實也挺麻煩的,我們通過使用 django-filer 這個模塊實現將圖片文件直接放在自己的網站上。

感興趣的同學可以看下官方介紹:https://github.com/divio/django-filer

1. 使用 pip 安裝。

pip install django-filer

這個模塊需要 django-mptt, easy_thumbnails, django-polymorphic 以及 pillow 這些依賴包, 不過安裝django-filer的時候 pip 都會自動幫我們裝好這些。

2. django-filer 配置。

在 settings.py 中加入以下內容:

INSTALLED_APPS = [
  # 圖片上傳模塊 django-filer
  'easy_thumbnails',
  'filer',
  'mptt',
]

# 支持視網膜高分辨率設備
THUMBNAIL_HIGH_RESOLUTION = True

# 處理縮列圖
THUMBNAIL_PROCESSORS = (
  'easy_thumbnails.processors.colorspace',
  'easy_thumbnails.processors.autocrop',
  'filer.thumbnail_processors.scale_and_crop_with_subject_location',
  'easy_thumbnails.processors.filters',
)

# 存放圖片文件夾設置
FILER_STORAGES = {
  'public': {
    'main': {
      'ENGINE': 'filer.storage.PublicFileSystemStorage',
      'OPTIONS': {
        'location': '項目路徑/media/filer',
        'base_url': '/media/filer/',
      },
      'UPLOAD_TO': 'filer.utils.generate_filename.randomized',
      'UPLOAD_TO_PREFIX': 'filer_public',
    },
    'thumbnails': {
      'ENGINE': 'filer.storage.PublicFileSystemStorage',
      'OPTIONS': {
        'location': '項目路徑/media/filer_thumbnails',
        'base_url': '/media/filer_thumbnails/',
      },
    },
  },
  'private': {
    'main': {
      'ENGINE': 'filer.storage.PrivateFileSystemStorage',
      'OPTIONS': {
        'location': '項目路徑/smedia/filer',
        'base_url': '/smedia/filer/',
      },
      'UPLOAD_TO': 'filer.utils.generate_filename.randomized',
      'UPLOAD_TO_PREFIX': 'filer_public',
    },
    'thumbnails': {
      'ENGINE': 'filer.storage.PrivateFileSystemStorage',
      'OPTIONS': {
        'location': '項目路徑/smedia/filer_thumbnails',
        'base_url': '/smedia/filer_thumbnails/',
      },
    },
  },
}
# 指定 MEDIA_URL 的位置
MEDIA_URL = '/media/'
MEIDA_ROOT = '項目路徑/media/'

在上述設置中,location 是文件真正存放的文件夾地址,而 base_url 是顯示時要指定的靜態文件網址。

在 urls.py 中加入以下程序代碼,才能把上傳的圖像文件當在靜態文件處理:

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

urlpatterns = [
  # others urls ...
  url(r'^files/', include('filer.urls')),
  # ...
]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEIDA_ROOT)

上述設置完成后,同步數據庫 ./manage.py migrate,讓模塊加上需要的數據表。執行 ./manage.py collectstatic,刷新靜態文件,加載 django-filer 自己的 CSS 和 Javascript 文件。我們便能在 admin 管理頁面看到多出的兩個數據表。

Django如何實現上傳圖片功能

接著我們就可以在 Folders 數據表中進行新建文件夾,上傳文件以及刪除文件夾和文件等操作。

3. 把 django-filer 的圖像文件添加到數據表中

使用 filer 模塊提供的 FilerImageField 字段,將上傳圖像文件的功能整合到建立的數據項中。

在 models.py 文件中添加:

from filer.fields.image import FilerImageField

并將需要放置圖片的數據表中的 image 變量改為:

image = FilerImageField(related_name='product_image')

刪除 migrations 下除 __init__.py 的其他文件和 db.sqlite3 文件,重新執行 ./manage.py makemigrations 和 ./manage.pymigrate ,刷新 admin 管理頁面,進入 image 字段的數據項,便可以看到 image 字段多了上傳文件的功能。

Django如何實現上傳圖片功能

我們便可以通過點擊 Choose Files 上傳文件了。

上傳圖片后,將 html 文件中 img 地址改為

<img src='{{product.image.url}}'>

便可以正確顯示圖片了。

Django如何實現上傳圖片功能

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙南县| 微博| 邢台市| 鹰潭市| 赞皇县| 红原县| 金湖县| 门源| 宜都市| 清水河县| 揭阳市| 库车县| 邯郸县| 奉化市| 济南市| 庆元县| 聊城市| 肇源县| 航空| 交城县| 凤城市| 本溪市| 白山市| 永和县| 孟连| 邻水| 禹州市| 扎鲁特旗| 区。| 仲巴县| 荣成市| 大港区| 柳江县| 娄烦县| 诏安县| 酉阳| 黄浦区| 攀枝花市| 张北县| 韶关市| 兴义市|