Django上传, 展示图片(文件)

一: 基本步骤与相关配置

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自行配置


三: 运行

这样就操作完成了, 如果还有问题, 可以私密博主, 试着帮你解决










猜你喜欢

转载自blog.csdn.net/qq_41664526/article/details/80024195