欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Django如何實現(xiàn)上傳圖片功能

 更新時間:2019年08月16日 10:45:43   作者:希希里之海  
這篇文章主要介紹了Django如何實現(xiàn)上傳圖片功能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

前言

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

感興趣的同學(xué)可以看下官方介紹: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 中加入以下內(nèi)容:

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

# 支持視網(wǎng)膜高分辨率設(shè)備
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',
)

# 存放圖片文件夾設(shè)置
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/'

在上述設(shè)置中,location 是文件真正存放的文件夾地址,而 base_url 是顯示時要指定的靜態(tài)文件網(wǎng)址。

在 urls.py 中加入以下程序代碼,才能把上傳的圖像文件當(dāng)在靜態(tài)文件處理:

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)

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

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

3. 把 django-filer 的圖像文件添加到數(shù)據(jù)表中

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

在 models.py 文件中添加:

from filer.fields.image import FilerImageField

并將需要放置圖片的數(shù)據(jù)表中的 image 變量改為:

image = FilerImageField(related_name='product_image')

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

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

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

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

便可以正確顯示圖片了。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Pycharm安裝第三方庫時Non-zero exit code錯誤解決辦法

    Pycharm安裝第三方庫時Non-zero exit code錯誤解決辦法

    這篇文章主要介紹了Pycharm安裝第三方庫時Non-zero exit code錯誤解決辦法,最好的解決辦法可以通過“Pycharm”左下角的“Terminal”,在pycharm內(nèi)使用pip安裝,以安裝“requests”為例,需要的朋友可以參考下
    2023-01-01
  • 基于Python獲取亞馬遜的評論信息的處理

    基于Python獲取亞馬遜的評論信息的處理

    這篇文章主要介紹了基于Python獲取亞馬遜的評論信息的處理方法,用戶的評論能直觀的反映當(dāng)前商品值不值得購買,亞馬遜的評分信息也能獲取到做一個評分的權(quán)重,感興趣的朋友跟隨小編一起看看吧
    2022-02-02
  • python3解析庫pyquery的深入講解

    python3解析庫pyquery的深入講解

    做過前端開發(fā)的同志都應(yīng)該知道或了解過jquery,jQuery 是一個用來處理DOM的JavaScript庫。pyquery說白了就是jquery的Python版本。下面這篇文章主要給大家介紹了關(guān)于python3解析庫pyquery的相關(guān)資料,需要的朋友可以參考下
    2018-06-06
  • 如何在VSCode下使用Jupyter的教程詳解

    如何在VSCode下使用Jupyter的教程詳解

    這篇文章主要介紹了如何在VSCode下使用Jupyter,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Python中的Numpy矩陣操作

    Python中的Numpy矩陣操作

    這篇文章主要介紹了Python中的Numpy矩陣操作,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • Python實現(xiàn)為圖片批量添加隨機(jī)水印

    Python實現(xiàn)為圖片批量添加隨機(jī)水印

    這篇文章主要為大家詳細(xì)介紹了如何使用Python實現(xiàn)為圖片批量添加隨機(jī)水印,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • 跟老齊學(xué)Python之使用Python操作數(shù)據(jù)庫(1)

    跟老齊學(xué)Python之使用Python操作數(shù)據(jù)庫(1)

    本文詳細(xì)講述了使用python操作數(shù)據(jù)庫所需要了解的知識以及準(zhǔn)備工作,十分的詳盡,這里推薦給想學(xué)習(xí)python的小伙伴。
    2014-11-11
  • 在python tkinter界面中添加按鈕的實例

    在python tkinter界面中添加按鈕的實例

    今天小編就為大家分享一篇在python tkinter界面中添加按鈕的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • numpy中np.sort返回索引的具體使用

    numpy中np.sort返回索引的具體使用

    本文主要介紹了使用numpy中np.sort函數(shù)返回索引的詳細(xì)解釋和使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 將pymysql獲取到的數(shù)據(jù)類型是tuple轉(zhuǎn)化為pandas方式

    將pymysql獲取到的數(shù)據(jù)類型是tuple轉(zhuǎn)化為pandas方式

    這篇文章主要介紹了將pymysql獲取到的數(shù)據(jù)類型是tuple轉(zhuǎn)化為pandas方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05

最新評論