本文主要是介绍咸鱼笔记—用户上传图片,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
咸鱼笔记—用户上传图片
- 上传图片
- 配置上传文件保存目录
- 用户自定义页面上传图片
新手刚接触python,跟着教程学的,仅供参考。欢迎各路大神指点。
学习版本: Django 1.8. Python 3.5
上传图片
配置上传文件保存目录
1)新建上传文件保存目录。
2)配置上传文件保存目录。
MEDIA_ROOT = os.path.join(BASE_DIR,'static/media')
用户自定义页面上传图片
1)定义用户上传图片的页面并显示,是一个自定义的表单。
<form action="/upload_handle" method="post" enctype="multipart/form-data">{% csrf_token %}<input type="file" name="pic"><input type="submit" value="upload"> </form>
2)定义接收上传文件的视图函数。
request对象有一个FILES的属性,类似于字典,通过request.FILES可以获取上传文件的处理对象。
model.py
class PicTest(models.Model):goods_pic = models.ImageField(upload_to='img')
view.py
from django.conf import settings
from bookinfo.models import PicTestdef upload_handle(request):#获取上传的图片的处理对象pic = request.FILES['pic']#创建文件save_path = '%s/img/%s'%(settings.MEDIA_ROOT,pic.name)with open(save_path,'wb') as f:#获取上传文件的内容并写到创建的文件中for content in pic.chunks():f.write(content)#在数据库中保存上传记录PicTest.objects.create(goods_pic='img/%s'%pic.name)#返回return HttpResponse("good")
注意:
在django中,上传文件不大于2.5M,文件放在内存中。上传文件大于2.5M,文件内容写到一个临时文件中。
Django处理上传文件的两个类:
FILE_UPLOAD_HANDLERS=("django.core.files.uploadhandler.MemoryFileUploadHandler", #内存"django.core.files.uploadhandler.TemporaryFileUploadHandler", #临时文件中)
浏览器输入地址:选择文件
选择图片上传
成功显示页面
上传成功
这篇关于咸鱼笔记—用户上传图片的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!