django的文件 图片上传(简单方法)
2010-08-18 13:44
357 查看
django的文件 图片上传
一直以为django的文件跟图片上传问题很麻烦,在网上找了好久,找了很多麻烦的方法 但是效果还不好,今天在无意中突然发现其实很简单,简单的要死! 晕! 以前我是这样写views的: (这是在有forms.py的情况下 ) from PIL import Image from juxin import settings f = request.FILES["file"] (如果是直接上传的话<没有forms.py>用request.FILES.get['file']) parser = ImageFile.Parser() for chunk in f.chunks(): parser.feed(chunk) img = parser.close() name = '%s%s' % (settings.MEDIA_ROOT, f.name) ##这里的时保存文件的路径加名字! img.save(name) 这种方法可以将图片保存到你想要的位置,也可以是文件!但是怎么在templates上显示上传的图片就是个麻烦问题,要重新设置MEDIA_ROOT,跟STATIC_ROOT,所以不推荐使用! 下面介绍最简单的方法!!! 那就是!!!::: 1:当然要先设置models.py image= models.ImageField(upload_to='photos/%Y/%m/%d', blank=True,null=True) 这里的upload_to是必须的参数,他会把上传的文件保存到MEDIA_root +upload_to后便的路径, 2:然后设置跟form.py image = forms.ImageField(required=False) 3:前台的是这样的post数据 <form action="/upload/" method="post" enctype="multipart/form-data">这个是一定要有的,如果你还要上传文字或者其他的东西,在form中间加就行了,比喻<legend>标题</legend> <input type="text" name="title" id="title"> <form> <fieldset> <legend>上传文件</legend> <input type="file" name="docfile" /> <input type="submit" value="上传"/> </fieldset> </form> 4:再就是views.py了,要先导入forms中的类! if 'file' in request.FILES: 这里是重点!为什么我要判断file呢?因为如果你想不传文件(也就是字段为空),但是还是要传其他的字段(如:我只想传标题,而图片我不传), 那么必 须要判断下。不然会报错"Key 'file' not found in <MultiValueDict: {}>" image = request.FILES["file"] else: image=None 然后把得到的图片保存到数据库,django保存的知识图片或者文件的url,图片保存在本地计算机上,这样提高django运行效率,s=Info(image=image) s.save() 5: 最后一步就是让图片在templates中显示了!!!! {% if info.image %}<img src='{{ info.image.url }}' />{% endif %} 在django book里说得到图片的绝对路径是这样的:{{info.get_image_url}},这个是错误的!!这个是0.9版本的用法! 当然 这里也要做下判断,如果image为null的话,他就不显示,注意: 这里判断的不是{% if info.image.url %}! |
相关文章推荐
- Django实现任意文件上传(最简单的方法)
- django学习——media处理上传图片、文件方法设置
- Django 批量保存图片文件 自定义上传方法
- Django实现任意文件上传(最简单的方法)
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
- Struts2自带的上传方法(简单实用)案例图片上传,文件也可,
- django实现文件上传(最简单的方法)
- 将压缩包文件(RAR/7Z/zip等格式)隐藏到图片(JPG格式)的超级简单方法
- django关于admin图片上传及模版中调用(这个方法很傻,别折腾了)
- yii使用activeFileField控件实现上传文件与图片的方法
- 利用certutil.exe实现在批处理(bat)中嵌入可执行文件或者各种媒体、图片之类二进制文件的简单方法!
- 获取文件上传名的一个简单方法
- ASp.net下 fckeditor 配置图片上传最简单的方法
- 限制ckeditor上传图片文件大小的方法
- 百度开源富文本编辑器 UEditor配置:图片上传和文件上传独立使用方法
- Django 实现简单的文件上传
- django上传图片并生成缩略图方法示例
- asp.net下CKFinder IE浏览器中上传图片文件时提示“无效文件名或文件夹名称”的解决方法(原创文章)
- django将图片上传数据库后在前端显式的方法
- 真正好用的js验证上传文件大小的简单方法