Django实现后台上传并显示图片功能


Posted in Python onMay 29, 2020

1.安装pillow

pip install Pillow

2.创建app

python manage.py startapp upload

3. project设定

settings.py

INSTALLED_APPS = [
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'upload.apps.MyuploadConfig', #add this
]

TEMPLATES = [
 {
  'BACKEND': 'django.template.backends.django.DjangoTemplates',
  'DIRS': [os.path.join(BASE_DIR,'templates')],
  'APP_DIRS': True,
  'OPTIONS': {
   'context_processors': [
    'django.template.context_processors.debug',
    'django.template.context_processors.request',
    'django.contrib.auth.context_processors.auth',
    'django.contrib.messages.context_processors.messages',
    'django.template.context_processors.media' #add this
   ],
  },
 },
]

#picture path setting
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace("\\", "/")
MEDIA_URL = '/media/'

urls.py

from django.contrib import admin
from django.urls import path,include
from django.conf.urls.static import static
from django.conf import settings


urlpatterns = [
 path('admin/', admin.site.urls),
 path('', views.index),
 path('upload/', include(('myupload.urls', 'myupload'), namespace='myupload')), # add uppoad urls
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)      #add image path

4. app 设定

models.py

from django.db import models

class User(models.Model):
 name = models.CharField(verbose_name='姓名', max_length=10)
 avator = models.ImageField(verbose_name='头像', upload_to='upload/%Y/%m/%d')

admin.py

from django.contrib import admin
from .models import *

# Register your models here.
admin.site.register(User)

urls.py

from django.contrib import admin
from django.urls import path, register_converter, re_path
from . import views

urlpatterns = [
 path('', views.index, name='index'), # 上传首页
]

views.py

from django.shortcuts import render
from .models import User
from django.http import HttpResponse

# Create your views here.
def index(request):
 users = User.objects.all()return render(request, 'upload/index.html', locals())

5 . 前台设定

project 目录下 templates/upload/index.html

----------------------------------------------------------------------------------------

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
</head>
<body>
<ul>
 {% for user in users%}
  <li>{{ user.name }}</li>
  <li><img src="{{ MEDIA_URL }}{{ user.avator }}" alt=""></li>
 {% endfor %}
</ul>
</body>
</html>

6. migraiton

python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
python manage runserver 0.0.0.0:8000

7.进行管理后台上传user 图片http://localhost:8000/admin

8.显示 http://localhost:8000/upload/

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现监控windows服务并自动启动服务示例
Apr 17 Python
Python通过DOM和SAX方式解析XML的应用实例分享
Nov 16 Python
jupyter安装小结
Mar 13 Python
Python引用传值概念与用法实例小结
Oct 07 Python
解析Python的缩进规则的使用
Jan 16 Python
解决安装pycharm后不能执行python脚本的问题
Jan 19 Python
python下的opencv画矩形和文字注释的实现方法
Jul 09 Python
Django中在xadmin中集成DjangoUeditor过程详解
Jul 24 Python
python argparser的具体使用
Nov 10 Python
python 实现将Numpy数组保存为图像
Jan 09 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
Feb 20 Python
Python虚拟环境的创建和包下载过程分析
Jun 19 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
May 29 #Python
Python基于smtplib模块发送邮件代码实例
May 29 #Python
Django通过json格式收集主机信息
May 29 #Python
Python小白不正确的使用类变量实例
May 29 #Python
python小白切忌乱用表达式
May 29 #Python
Python爬虫实现百度翻译功能过程详解
May 29 #Python
Django中的模型类设计及展示示例详解
May 29 #Python
You might like
解析php取整的几种方式
2013/06/25 PHP
php数组合并array_merge()函数使用注意事项
2014/06/19 PHP
wamp安装后自定义配置的方法
2014/08/23 PHP
分享五个PHP7性能优化提升技巧
2015/12/07 PHP
快速保存网页中所有图片的方法
2006/06/23 Javascript
js tab 选项卡
2009/04/26 Javascript
通过JS判断联网类型和连接状态的实现代码
2015/04/01 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
2016/09/02 Javascript
js控制文本框只能输入中文、英文、数字与指定特殊符号的实现代码
2016/09/09 Javascript
详解vue-cli与webpack结合如何处理静态资源
2017/09/19 Javascript
nginx配置React静态页面的方法教程
2017/11/03 Javascript
vue-cli结合Element-ui基于cropper.js封装vue实现图片裁剪组件功能
2018/03/01 Javascript
vue 监听键盘回车事件详解 @keyup.enter || @keyup.enter.native
2018/08/25 Javascript
原生JS实现的自动轮播图功能详解
2018/12/28 Javascript
vue项目移动端实现ip输入框问题
2019/03/19 Javascript
浅谈JS的原型和继承
2019/05/08 Javascript
html+vue.js 实现漂亮分页功能可兼容IE
2020/11/07 Javascript
JavaScript中Object、map、weakmap的区别分析
2020/12/15 Javascript
python的id()函数介绍
2013/02/10 Python
Python时间戳与时间字符串互相转换实例代码
2013/11/28 Python
Python Web框架Flask中使用七牛云存储实例
2015/02/08 Python
Django中模版的子目录与include标签的使用方法
2015/07/16 Python
Python向日志输出中添加上下文信息
2017/05/24 Python
python删除不需要的python文件方法
2018/04/24 Python
python输出带颜色字体实例方法
2019/09/01 Python
Python中zip函数如何使用
2020/06/04 Python
python opencv 实现读取、显示、写入图像的方法
2020/06/08 Python
浅谈如何使用python抓取网页中的动态数据实现
2020/08/17 Python
CSS3实现歌词进度文字颜色填充变化动态效果的思路详解
2020/06/02 HTML / CSS
Java语言程序设计测试题改错题部分
2014/07/22 面试题
银行会计业务的个人自我评价
2013/11/02 职场文书
大学生职业生涯设计书
2014/01/02 职场文书
歌舞青春观后感
2015/06/10 职场文书
庆祝教师节主题班会
2015/08/17 职场文书
Nginx设置日志打印post请求参数的方法
2021/03/31 Servers
Centos7中MySQL数据库使用mysqldump进行每日自动备份的编写
2021/08/02 MySQL