1、django上传图片,主要是将图片存储在内存或者临时文件中。所以,上传图片,就是将图片的路径存储在数据库中。

1、图片大小不大于2.5M时,存储在内存。

2、图片大小大于2.5M时,存储在临时文件中。

2、上传图片步骤。

1)设置上传文件的目录。

在settings.py文件下,设置上传文件的目录。(与设置静态目录的方法一致)

2)在数据库中创建数据表,其中有关图片的字段设置为varchar,用于存储图片路径。(使用的数据库为mysql)

设置存储图片路径的字段为pic。

3)编写models.py文件,将图片路径的字段设置为models.ImageField类型。将上传的图片存储到media下的pic目录下。

pic = models.ImageField(upload_to='pic/',verbose_name=u'图片地址')

4)html前端页面显示上传图标。

<div class="form-group"><label for="pic">产品的图片</label><form><input id="image-uploadify" name="pic" type="file" accept=".xlsx,.xls,image/*,.doc,audio/*,.docx,video/*,.ppt,.pptx,.txt,.pdf" multiple></form>
</div>

5)编写views.py文件,django通过request.FILES.get('')方法获取前端的图片对象。

def insertProductData(request):mod = Product.objects  # 获取Drug模型的Model操作对象# 获取上传文件的处理对象pic = request.FILES.get('pic')try:# 创建插入mod.create(name=request.POST.get("name"),code = request.POST.get("code"),pic=pic,purchase_price = request.POST.get("purchase_price"),sole_price=request.POST.get("sole_price"),)context = {'info': '添加成功!'}except Exception as res:print(res)context = {'info': res}return JsonResponse({"msg": context})

输出request.FILES.get('pic'),可得到图片的名称。

6)ajax将表单数据插入到数据库。由于需要长传图片信息,enctype需要为multipart/form-data,所以用表单来初始化。

$(document).on("click", "#add_save", function () {if (confirm("确认保存数据吗?")) {// 用表单来初始化var formData=new FormData();formData.append('name',$("#name").val());formData.append('purchase_price',$("#purchase_price").val());formData.append('code',$("#code").val());formData.append('sole_price',$("#sole_price").val());formData.append('pic',$("input[name='pic']")[0].files[0]);$.ajax({url: "/product/insertProductData/",type: 'post',async: true,// enctype:"multipart/form-data",data: formData, contentType:false,// jQuery不要去设置Content-Type请求头processData:false,// jQuery不要去处理发送的数据success: function (result) {alert(result.msg.info);//1.关闭模态框$("#addModel").modal("hide");}});} else {return false;}
});

【注】使用表单序列化( $("form").serialize() ),无法上传图片信息,request.FILES获取为空。

如何将数据库的图片显示到html页面上:django 调用数据库图片的路径并在html显示_weixin_43235307的博客-CSDN博客

Django 图片上传相关推荐

  1. Django 图片上传upload_to路径指定失效的问题记录

    为什么80%的码农都做不了架构师?>>>    初始方法一: 疑虑:model使用upload_to自定义路径方法失效,指定路径也失效.最后以Views中指定MEDIA_URL和ME ...

  2. django图片上传到oss_django 配置阿里云OSS存储media文件的例子

    1. 安装django-aliyun-oss2-storage包 linux上用 pip install django-aliyun-oss2-storage 无报错,顺利安装 windows上报错: ...

  3. html上传图片至数据库,Django 图片上传到数据库 并调用显示

    环境:Django2.0 Python3.6.4 建立项目,数据库设置,就不说了. 直接上代码: 在models.py中,需要建立模型,这里使用了ImageField字段,用来存储图片路径,这个字段继 ...

  4. django图片上传到oss_Django上传文件

    继前文的项目准备中,涉及到上传歌曲,所以有了这一过程,在项目目录下设置了资源文件夹暂存歌曲,完场云端上传后即删除所有文件 上传表单 主要设置了上传提交两个选项,定义了上传属性,方便后续获取到文件对象, ...

  5. Python Django 图片上传及显示代码示例

  6. django 类取消csrf_Django之Form组件详解、图片上传及定制

    Django的Form功能 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 Django form 流程 1.创建类,继承form.Form ...

  7. html显示数据库图片django,django将图片上传数据库后在前端显式的方法

    1.使用ImageField先安装pillow模块 pip install pillow 2.在app的models中设置 class Image(models.Model): pic_name=mo ...

  8. 在BAE搭建的Django中实现图片上传并用jquery预览图片

    在BAE上搭建好了django,如何实现图片上传并预览呢? 想要实现图片上传并不难,但是想看到刚上传的图片,就得在服务器返回上传后图片的url.可是返回数据的话,网页就会重定向.因此想要在上传页面预览 ...

  9. Django中static media的简单配置及图片上传实践

    static & media 在Django应用的文件夹下,经常会发现这两个文件夹:static, media; static称为静态文件夹,用于存放CSS, JavaScript, 网站lo ...

最新文章

  1. SQL语句对于NUll的筛选
  2. 264 解码之 yuv
  3. android 开机小企鹅_手机root是好是坏 小编来帮你分析
  4. C++_二维数组的动态申请内存3种方法
  5. sql server代理无法启动_DungProxy代理资源服务系统,
  6. 路由与交换技术(复习知识点-全)
  7. 将人工智能融入科技体育类课程中
  8. 第十四篇 积分器和积分运算电路
  9. 建筑工地使用的人脸识别门禁实名制管理系统是什么
  10. 汇编 bne 1b和bne 1f浅析
  11. 如何查看磁盘空间是否够用
  12. 信号完整性分析5——信号上升时间
  13. 初探数通网络开放可编程简介
  14. chan队列之发送方等待接收方处理结果
  15. 【C4D材质库合集】吐血分享!5.7GB!4000个+材质球!最新最全高质量C4D材质库合集
  16. 五分钟学会ios反编译
  17. 用python将照片做成数据集_TensorFlow2.X使用图片制作简单的数据集训练模型
  18. 从Dao聊到Aragon
  19. 霸王背单词 Beta Release
  20. 新手必看的DIY装机教程(图解)

热门文章

  1. Google、苹果、亚马逊向“自动驾驶”发起进攻
  2. 方舟编译器的下载与安装配置及小组分工
  3. Linux——定时运行作业
  4. 秒表Stopwatch的使用
  5. Nancy启用跨站攻击防护(CSRF)
  6. CDN 在游戏领域的应用
  7. 东北大学和南邮的计算机,考研南邮跟东北大学通信与信息系统
  8. 港科夜闻|香港科大商学院成为香港唯一一间入选最能发挥正面价值商学院
  9. 阿里云APP备案操作流程 新手看过来
  10. 经济师考计算机英语考试,2019考经济师需要考试职称英语和计算机吗?