創(chuàng)新互聯(lián)www.cdcxhl.cn八線(xiàn)動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買(mǎi)多久送多久,劃算不套路!
專(zhuān)注于為中小企業(yè)提供成都做網(wǎng)站、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)定海免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。這篇文章主要介紹了django上傳圖片的方法,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
很多時(shí)候我們要用到圖片上傳功能,如果圖片一直用放在別的網(wǎng)站上,通過(guò)加載網(wǎng)址的方式來(lái)顯示的話(huà)其實(shí)也挺麻煩的,我們通過(guò)使用 django-filer 這個(gè)模塊實(shí)現(xiàn)將圖片文件直接放在自己的網(wǎng)站上。
1.使用pip安裝
pip install django-filer
這個(gè)模塊需要 django-mptt, easy_thumbnails, django-polymorphic 以及 pillow 這些依賴(lài)包, 不過(guò)安裝django-filer的時(shí)候 pip 都會(huì)自動(dòng)幫我們裝好這些。
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': '項(xiàng)目路徑/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': '項(xiàng)目路徑/media/filer_thumbnails', 'base_url': '/media/filer_thumbnails/', }, }, }, 'private': { 'main': { 'ENGINE': 'filer.storage.PrivateFileSystemStorage', 'OPTIONS': { 'location': '項(xiàng)目路徑/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': '項(xiàng)目路徑/smedia/filer_thumbnails', 'base_url': '/smedia/filer_thumbnails/', }, }, }, } # 指定 MEDIA_URL 的位置 MEDIA_URL = '/media/' MEIDA_ROOT = '項(xiàng)目路徑/media/'
在上述設(shè)置中,location 是文件真正存放的文件夾地址,而 base_url 是顯示時(shí)要指定的靜態(tài)文件網(wǎng)址。
在 urls.py 中加入以下程序代碼,才能把上傳的圖像文件當(dāng)在靜態(tài)文件處理:
from django.conf import settingsfrom 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ù)庫(kù) ./manage.py migrate,讓模塊加上需要的數(shù)據(jù)表。執(zhí)行 ./manage.py collectstatic,刷新靜態(tài)文件,加載 django-filer 自己的 CSS 和 Javascript 文件。我們便能在 admin 管理頁(yè)面看到多出的兩個(gè)數(shù)據(jù)表。
接著我們就可以在 Folders 數(shù)據(jù)表中進(jìn)行新建文件夾,上傳文件以及刪除文件夾和文件等操作。
3. 把 django-filer 的圖像文件添加到數(shù)據(jù)表中
使用 filer 模塊提供的 FilerImageField 字段,將上傳圖像文件的功能整合到建立的數(shù)據(jù)項(xiàng)中。
在 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 管理頁(yè)面,進(jìn)入 image 字段的數(shù)據(jù)項(xiàng),便可以看到 image 字段多了上傳文件的功能。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享django上傳圖片的方法內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,遇到問(wèn)題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!
本文名稱(chēng):django上傳圖片的方法-創(chuàng)新互聯(lián)
鏈接地址:http://www.muchs.cn/article24/shdce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、網(wǎng)站營(yíng)銷(xiāo)、云服務(wù)器、電子商務(wù)、關(guān)鍵詞優(yōu)化、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容