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


三: 运行

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










  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

她最爱橘了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值