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
效果圖: