当前位置:   article > 正文

Django 之上传图片,入库,及保存到静态目录的 一些基础方法_图片文件需要放在一个静态文件夹

图片文件需要放在一个静态文件夹
  • 首先呢,我们需要创建一个项目这是必须的,因前面已经介绍过了创建项目的过程,在这儿就不过多的去详解了 , 若想了解 点击:创建项目

第一需要在项目下手动创建一个static 的文件目录,然后我们在setting.py 中 配置一个路径 用来保存 图片:
!表示项目根路径下的static文件夹下的upload文件夹

UPLOADFILES_DIRS = os.path.join(BASE_DIR, ‘static/upload’)

第二 在views.py中 创建一个类视图 用来读取从form表单中传过来图片 对它进行保存 及入库操作:


导入我们需要用的包

from django.shortcuts import render
//创建项目时自带的包
from django.views import View
//我们创建类视图所需要的包
import os
//拼接地址所需要的包
from django.conf import settings
//以及在我们需要settings中我们创建的路径 所以把 settings.py页导过来
from datetime import datetime

创建类视图

class UploadView(View):
	def get(self, request):
		''''渲染模板'''
		return render(request, 'upload.html')

	def post (self, request):
		''''获取数据进行逻辑处理'''
        img = request.FILES.get('img')		#通过  FILES.get 获取 图片形式数据

        #判断参数是否齐全
        if not img:
            return render(request, 'upload.html',{'error':'参数不全'})

        #对文件名进行拼接防止加入静态文件夹时 出现重名的情况
        这李我用添加时的当前时间进行 一个动态的拼接
        fix =datetime.now().strftime('%Y%m%d%H%M%S%f') + '1'

       ***上传图片***
        #对 我们settings中已经配置好的路径 把文件的名称进行存入
        img_path = os.path.join(settings.UPLOADFILES_DIRS, fix + img.name)
        f = open(img_path, 'wb')
        for i in img.chunks():
            f.write(i)
        f.close()

        # 入库操作

        goods_cate.images = '/static/images/' + fix + img.name
        goods_cate.save()
        return render(request, 'add_goods.html',{'error':'分类添加成功'})
        
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

这里呢我们有一个注意点
在from 表单中传送 图片类型的 input框type类型需要写入 file文件类

传送时 form 中就不单单是 POST 提交方式, 还必须有:
enctype="multipart/form-data"

才能进行图片的传送

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/70808
推荐阅读
相关标签
  

闽ICP备14008679号