Django后台管理页面添加图片
1. 新建上传文件目录
- 可以是任意目录
2. 配置上传文件保存目录
# 设置上传文件的保存目录
MEDIA_ROOT = os.path.join(BASE_DIR, 'static/media')
3. 在admin里面注册模型
from django.contrib import admin
from app_01.models import PicTes
# Register your models here.
admin.site.register(PicTes)
4. 进入后台管理页面
5. 选择文件上传
6. 上传成功
用户图片上传
1. 图片上传web源码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>上传图片</title>
</head>
<body>
<form action="/upload_handle" method="POST" enctype="multipart/form-data">
{% csrf_token %}
<div>
<input type="file" name="pic">
</div>
<div>
<input type="submit" value="上传">
</div>
</form>
</body>
</html>
2. 配置路由并显示页面
path(r'upload_handle', views.upload_handle), # 上传图片处理
3. 文件上传处理视图
def upload_handle(request):
# 上传图片处理
# 1.获取上传的处理对象
pic = request.FILES['pic']
# 获取上传文件的名字
# print(pic.name)
# 获取上传文件的内容
# print(pic.chunks())
# 2.创建一个文件
save_path = '%s/booktest/%s' % (settings.MEDIA_ROOT, pic.name)
with open(save_path, 'wb') as f:
# 3.获取上传文件的内容并写入创建的文件中
for content in pic.chunks():
f.write(content)
# 4.在数据库中保存上传记录
PicTes.objects.create(goods_pic='app_01/%s' % pic.name)
# 5.返回
return HttpResponse('ok')
- 当上传的文件不大于2.5M,文件存在内存中。
- 如果上传文件大于2.5M,文件内容写到一个临时文件中。
4. 上传测试
5. 保存的内容
数据库内容