一: 基本步骤与相关配置
1. 创建一个app
python manage.py startapp app
2. 新建一个media文件夹, 用来保存上传的文件(一般是图片)
3. 新建一个templates文件夹, 用来保存html文件
4. 配置settings.py文件
添加
1> 配置上传文件存放的路径
MEDIA_URL = '/media/'
2> 指定文件存放的根目录, 是一个字符串路径
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
5. 配置models.py文件, 创建数据库
class ImageModel(models.Model):
img_title = models.CharField(max_length=50)
# upload_to 上传图片存放的路径
# 如果这里你需要上传文件可以换成FileField
img_src = models.ImageField(upload_to='自定义文件夹或路径')
然后运行(这里具体操作可以看博主的其它博客)
二: 编写
1. 在views.py文件中
# 引入自己写的类
from . models import ImageModel
from django.shortcuts import render, redirect
def upload(request):
if request.method == 'GET':
imgs = ImageModel.objects.all()
return render(request, 'index.html', {'imgs': imgs})
elif request.method == 'POST'
# 1: 获取上传的图片文件
imgfiles = request.FILES.get('img')
# imgfile.size 做文件上传大小的限制
# imgfile.content_type 做文件上传类型限制
# imfile.name 文件名称
# 2: 创建数据模型对象
img = ImageModel(img_src=imgfile, img_title=imgfile.name)
# 3: 保存
img.save()
return render(request, 'index.html')
2. 在templates的html.py中
需要在form表单中加入 enctype="multipart/form-data"
实例:
在读取图片的html中:
3. 配置urls.py文件
引入Django自带的server函数来获取图片
from django.views.static import server
server主要功能: 根据media绝对路径和path参数路径拼接完整路径, 打开路径下文件进行读取, 封装response返回response对象
其它的基础url自行配置
三: 运行
这样就操作完成了, 如果还有问题, 可以私密博主, 试着帮你解决