美文网首页
Django-图片上传和显示操作

Django-图片上传和显示操作

作者: 一技破万法 | 来源:发表于2020-07-03 19:46 被阅读0次

操作步骤

  • 安装Pillow库
  • 创建app
  • settings.py加载app

安装Pillow库

python3 pip3 install pillow

创建app

命令行创建
python3 manage.py startapp photo
建立项目与数据库之间的联系
python3 manage.py makemigrations
python3 manage.py migrate

修改settings.py文件

文件中最后加入

MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/') # media即为图片上传的根路径
MEDIA_URL = '/media/'

编写上传视图

修改views.py文件

def uploadImg(request): # 图片上传函数
    if request.method == 'POST':
        img = Img(img_url=request.FILES.get('img'))
        img.save()
    return render(request, 'imgupload.html')

编写映射

在urls.py文件中添加url映射路径

from imgTest.views import uploadImg # 添加
urlpatterns = [
    path('admin/', admin.site.urls),
    path('uploadImg/', uploadImg), # 新增
] 

编写上传页面

在所建app的目录新建文件夹templates,并创建imgUpload.html添加以下内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>图片上传</title>
</head>
<body>
    <form action="" method="post" enctype="multipart/form-data">
        {% csrf_token %}
        <input type="file" name="img">
        <input type="submit" value="上传">
    </form>
</body>
</html>

启动django服务器,在浏览器中输入http://localhost:8000/uploadImg/就可以看到上传的界面。

编写显示视图

修改views.py文件

def showImg(request):
    imgs = Img.objects.all() # 从数据库中取出所有的图片路径
    context = {
        'imgs' : imgs
    }
    return render(request, 'showImg.html', context)

修改映射

修改urls.py添加映射并加载图片静态路径

from django.contrib import admin
from django.urls import path
from imgTest.views import uploadImg, showImg
from django.conf.urls.static import static
from django.conf import settings

urlpatterns = [
    path('admin/', admin.site.urls),
    path('uploadImg/', uploadImg),
    path('showImg/', showImg)
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

编写显示页面

新建图片显示模板文件showImg.html,并添加以下内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>图片展示</title>
</head>
<body>
    {% for item in imgs %}
        <img src="{{ item.img_url.url }}"><br/>
    {% endfor %}
</body>
</html>

重启django服务器并在浏览器中输入http://localhost:8000/showImg/即可看到上传的所有图片

一技破万法

相关文章

  • Django-图片上传和显示操作

    操作步骤 安装Pillow库 创建app settings.py加载app 安装Pillow库 创建app 命令行...

  • 2018-04-25

    Django-上传图片 1. 模型定义中将属性定义成 models.ImageField 类型 pic=model...

  • Django上传图片和显示图片

    Django上传图片和显示图片  在搭建网站时,难免需要上传图片,比如用户头像或者相册图片等等,这里简单记录一下过...

  • 使用element实现图片上传

    需求:没有图片的时候按钮显示上传图片,有的时候显示重新上传,当点击按钮的时候上传成功后会替换掉原来的图片

  • django中上传图片和显示图片

    setting中的配置 url中的配置 model中的配置 view中的配置 templete中的配置

  • vue element上传图片、pdf、word文件,图片可以预

    需求是,上传的是图片就显示图片,上传的是pdf就显示对应的icon图片。使用的是vscode-material-i...

  • Day_10 异常与pygame

    异常捕获 pygame操作流程 pygame显示文字 pygame显示图片与图片操作 pygame基本显示

  • 静态图片的上传和显示

    django存储及显示图片 第一步: 在setting中的末尾位置配置静态文件地址 同时在项目文件目录下创建静态文...

  • GCD调度组的业务场景使用探讨

    场景一 发帖流程:图片上传接口和发布接口。图片上传到服务器是比较耗时的操作需要异步处理,把图片上传到服务器后,服务...

  • 使用ajax上传文件

    在前端多数需求中会出现直接点击上传图标,文件直接上传,后显示上传图片或显示文档图片,而html自带的 标签无法直接...

网友评论

      本文标题:Django-图片上传和显示操作

      本文链接:https://www.haomeiwen.com/subject/gireqktx.html