django上傳圖片功能

1、實現後臺管理頁面上傳功能
2、實現自定義上傳文件功能

後臺管理頁面上傳功能

1、新建模型類

class PicTest(models.Model):
    goods_pic = models.ImageField(upload_to='booktest')

2、創建相應的保存文件夾

settings.py目錄中創建文件夾,用於存儲上傳文件,並且在static目錄下創建一個media的目錄。

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

3、admin.py 註冊模型

from booktest.models import PicTest
admin.site.register(PicTest)

4、登陸後臺進行上傳文件
在這裏插入圖片描述
結果圖:

在這裏插入圖片描述


自定義上傳文件功能

1、模板文件的代碼:

<form action="/upload_handle" method="POST" enctype="multipart/form-data">
    <input type="file" name="pic">
    <input type="submit" value="上傳">
    {% csrf_token %}
</form>

2、視圖函數的upload_handle處理代碼:


from django.conf import settings #通過導入settings,來調用下方的settings.MEDIA_ROOT的變量也就是保存路徑文件的目錄的變量

def upload_handle(request):
    # 獲取一個文件管理器對象
    file = request.FILES['pic']

    # 保存文件
    where = '%s/booktest/%s' % (settings.MEDIA_ROOT, file.name)
    content = file.chunks() 
    with open(where, 'wb') as f:
        for i in content:
            f.write(i)

    # 保存文件上傳的記錄
    PicTest.objects.create(goods_pic='booktest/%s' % file.name)
	# 返回的httpresponse
    return HttpResponse('ok')

上傳功能的django文檔:https://yiyibooks.cn/xx/django_182/ref/files/file.html

效果圖:
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章