Django1.9中怎么通過ImageField上傳圖片-創(chuàng)新互聯(lián)

本篇文章為大家展示了Django1.9中怎么通過ImageField上傳圖片,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序定制開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了利辛免費建站歡迎大家使用!

在models.py中有image如下

image = models.ImageField(upload_to='images/%Y/%m', verbose_name='文件縮略圖')

在顯示頁面中如show.html中使用img標(biāo)簽顯示

<img class="center-block thumbnail" src="{{result.object.image.url }}" alt="" />

不過這里{{result.object.image.url}}只是讀取出了上面模型upload_to下面的路徑,并不能真正顯示出來。要在模板中顯示,還需要在urls.py和settings.py配置

下一步,在你的urls.py中配置如下:

from django.conf.urls import include, url
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
  '''你的其他url配置'''
]

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

setttings.py中配置 MEDIA_URL 和 MEDIA_ROOT,這里定義了media相關(guān)配置,也就是定義了模型中ImageField里的參數(shù)upload_to所在目錄

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

到此,我們能夠正確訪問通過ImageFields上傳的圖片,下面是官方文檔上面的一些說明

具體的相關(guān)文檔

在模型中調(diào)用FileField 或 ImageField (見下方) 需如下幾步:

在你的settings文件中, 你必須要定義 MEDIA_ROOT 作為Django存儲上傳文件的路徑(從性能上考慮,這些文件不能存在數(shù)據(jù)庫中。) 定義一個 MEDIA_URL 作為基礎(chǔ)的URL或者目錄。確保這個目錄可以被web server使用的賬戶寫入。

在模型中添加FileField 或 ImageField 字段, 定義 upload_to參數(shù),內(nèi)容是 MEDIA_ROOT 的子目錄,用來存放上傳的文件。

數(shù)據(jù)庫中存放的僅是這個文件的路徑 (相對于MEDIA_ROOT). 你很可能會想用由Django提供的便利的url 屬性。比如說, 如果你的ImageField 命名為 mug_shot, 你可以在template中用 {{ object.mug_shot.url }}獲得你照片的絕對路徑。

例如,如果你的 MEDIA_ROOT設(shè)定為 ‘/home/media',并且 upload_to設(shè)定為 photos/%Y/%m/%d。 upload_to的'%Y/%m/%d‘被strftime()所格式化;'%Y' 將會被格式化為一個四位數(shù)的年份, ‘%m' 被格式化為一個兩位數(shù)的月份'%d'是兩位數(shù)日份。如果你在Jan.15.2007上傳了一個文件,它將被保存在/home/media/photos/2007/01/15目錄下.

上述內(nèi)容就是Django1.9中怎么通過ImageField上傳圖片,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享文章:Django1.9中怎么通過ImageField上傳圖片-創(chuàng)新互聯(lián)
網(wǎng)頁URL:http://bm7419.com/article24/dehjje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站建設(shè)ChatGPT、軟件開發(fā)App設(shè)計、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管