djaogo 图片上传与读取

时间:2023-03-10 07:17:06
djaogo 图片上传与读取

1.首先上传图片表单需<form method="POST" enctype="multipart/form-data">
2.视图py 中获取片名字
#接收文件以对象形式
img = request.FILES.get('img')
#文件名称是name属性
#建立文件流对象
with open(os.path.join(settings.UPLOAD_ROOT,'',img.name),'wb') as f:
#写文件
for chunk in img.chunks():
f.write(chunk)
user = User(username = username,password=password,img=img.name)
user.save()
注意:写入图片(文件)需在setting.py中定义上传文件夹的路径
UPLOAD_ROOT = os.path.join(BASE_DIR,'upload')
3.读取展示图片
在视图py中读取数据(要展示的内容)res = User.objects.get(id=18)
然后在模板文件中展示图片<img src="/upload/{{res.img}}">
注意:展示图片需在路由(urls.py)中导入
#导入文件路由库
from django.views.static import serve
#导入文件配置路径
from mysite.settings import UPLOAD_ROOT
定义图片的链接
re_path('^upload/(?P<path>.*)$',serve,{'document_root':UPLOAD_ROOT})