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+Django在windows下的开发环境配置图解
Nov 11 Python
通过mod_python配置运行在Apache上的Django框架
Jul 22 Python
Python脚本实现Web漏洞扫描工具
Oct 25 Python
Python中with及contextlib的用法详解
Jun 08 Python
Python实现的直接插入排序算法示例
Apr 29 Python
python逆序打印各位数字的方法
Jun 25 Python
Numpy中矩阵matrix读取一列的方法及数组和矩阵的相互转换实例
Jul 02 Python
Python3中的bytes和str类型详解
May 02 Python
使用selenium模拟登录解决滑块验证问题的实现
May 10 Python
pytorch: Parameter 的数据结构实例
Dec 31 Python
python使用paramiko实现ssh的功能详解
Mar 06 Python
python 用pandas实现数据透视表功能
Dec 21 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验证手机号码(支持归属地查询及编码为UTF8)
2013/02/01 PHP
CodeIgniter实现更改view文件夹路径的方法
2014/07/04 PHP
PHP curl 抓取AJAX异步内容示例
2014/09/09 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
Javascript日期对象的dateAdd与dateDiff方法
2008/11/18 Javascript
在IE下获取object(ActiveX)的Param的代码
2009/09/15 Javascript
IE6下focus与blur错乱的解决方案
2011/07/31 Javascript
javascript学习笔记(九) js对象 设计模式
2012/06/19 Javascript
display和visibility的区别示例介绍
2014/02/26 Javascript
jQuery插件EnPlaceholder实现输入框提示文字
2015/06/05 Javascript
js实时获取并显示当前时间的方法
2015/07/31 Javascript
浅谈javascript的Array.prototype.slice.call
2015/08/31 Javascript
浅谈node.js中async异步编程
2015/10/22 Javascript
JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
2016/06/05 Javascript
JavaScript引用类型Date常见用法实例分析
2018/08/08 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
2018/09/15 Javascript
vue-cli 打包后提交到线上出现 &quot;Uncaught SyntaxError:Unexpected token&quot; 报错
2018/11/06 Javascript
js+html实现点名系统功能
2019/11/05 Javascript
layui 弹出层值回传解决方式
2019/11/14 Javascript
angula中使用iframe点击后不执行变更检测的问题
2020/05/10 Javascript
python引用DLL文件的方法
2015/05/11 Python
python下载图片实现方法(超简单)
2017/07/21 Python
Python使用 Beanstalkd 做异步任务处理的方法
2018/04/24 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
2019/06/19 Python
Python3 Tkinkter + SQLite实现登录和注册界面
2019/11/19 Python
python 消费 kafka 数据教程
2019/12/21 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
python+gdal+遥感图像拼接(mosaic)的实例
2020/03/10 Python
python代数式括号有效性检验示例代码
2020/10/04 Python
英国奢侈皮具品牌:Aspinal of London
2018/09/02 全球购物
世界上最好的旅行夹克:BauBax
2018/12/23 全球购物
2014年预备党员学习两会心得体会
2014/03/17 职场文书
服务承诺口号
2014/05/22 职场文书
办理护照工作证明
2014/10/10 职场文书
2016年端午节校园广播稿
2015/12/18 职场文书
Python快速实现一键抠图功能的全过程
2021/06/29 Python