django圖片上傳

mysite2/settings.py

#設(shè)置圖片的保存位置
MEDIA_ROOT = os.path.join(BASE_DIR,"static/media")
image.png

book/models.py

#英雄類
class HeroInfo(models.Model):
    ...
    #英雄圖片 默認(rèn)上傳到 dedia文件夾中 將圖片放入images中
    hpic = mdoels.ImageField(upload_to="images/)

圖片上傳需要使用form表單 提交類型為post 并加入enctype="multipart/form-data"
book/hero_add.html

<form action="{% url "book:hero_add" %}" method="post" enctype="multipart/form-data">
    
    圖片:<input name="hpic" type="file"><br/>

book/views.py

#利用UUID生成不重復(fù)的圖片名,避免上傳相同的名字的圖片被覆蓋
def do_file_name(file_name):
    return str(uuid.uuid1())+os.path.splitext(file_name)[1]

def hero_add(request):
    ...
    hpic = request.FILES["hpic"]
    # 審核上傳文件大小 超過(guò)30K不能上傳
    if hpic.size > 1024 * 30:
        return render(request, "book/hero_add.html", {"error_link": "文件最大不超過(guò)30K"})
    # 保存到本地
    hpic_chunks = hpic.chunks()
    # 文件保存的路徑
    file_name = os.path.join("images", do_file_name(hpic.name))
    file_path = os.path.join(settings.MEDIA_ROOT, file_name)
    # 寫(xiě)
    with open(file_path, "wb")as file:
        for chunk in hpic_chunks:
            file.write(chunk)
    hero = HeroInfo()
    ...
    hero.hpic = file_name
    hero.save()
    return render(request, "book/hero_add.html",{"ok_link": "已添加成功,你可以繼續(xù)添加或返回英雄列表頁(yè)"})
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 模塊間聯(lián)系越多,其耦合性越強(qiáng),同時(shí)表明其獨(dú)立性越差( 降低耦合性,可以提高其獨(dú)立性)。軟件設(shè)計(jì)中通常用耦合度和內(nèi)聚...
    riverstation閱讀 2,203評(píng)論 0 8
  • 在上一個(gè)章節(jié),我們已經(jīng)創(chuàng)建了一個(gè)基礎(chǔ)的Blog程序。現(xiàn)在我們將使用一些Dajngo高級(jí)功能,去實(shí)現(xiàn)一個(gè)完整的blo...
    金金剛狼閱讀 3,746評(píng)論 1 12
  • Web框架之Django: (1)簡(jiǎn)介: Django是一個(gè)由Python寫(xiě)成開(kāi)源的重量級(jí)Web應(yīng)用框架,采用MT...
    老肖閱讀 3,160評(píng)論 0 18
  • 一、Django框架前言知識(shí): 1、C/S和B/S的區(qū)別: C/S結(jié)構(gòu)軟件:客戶端/服務(wù)端軟件,即客戶端要自己下載...
    月下獨(dú)酌123閱讀 5,110評(píng)論 0 36
  • 大部分人只執(zhí)著于人生的一小部分,以為那一小部分就可以發(fā)現(xiàn)整體。我們沒(méi)有離開(kāi)房間,就想探測(cè)河流的長(zhǎng)寬,就想觀察...
    菲梵飛閱讀 471評(píng)論 0 2

友情鏈接更多精彩內(nèi)容