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学习心得
Dec 06 Python
用tensorflow实现弹性网络回归算法
Jan 09 Python
python3+PyQt5实现自定义分数滑块部件
Apr 24 Python
python多进程提取处理大量文本的关键词方法
Jun 05 Python
Python动态生成多维数组的方法示例
Aug 09 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
Dec 20 Python
python 返回一个列表中第二大的数方法
Jul 09 Python
Python 调用 Outlook 发送邮件过程解析
Aug 08 Python
Python的控制结构之For、While、If循环问题
Jun 30 Python
详解numpy.ndarray.reshape()函数的参数问题
Oct 13 Python
python批量创建变量并赋值操作
Jun 03 Python
忆童年!用Python实现愤怒的小鸟游戏
Jun 07 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+html5+ajax实现上传图片的方法
2016/05/14 PHP
PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
2017/06/21 PHP
用js实现计算代码行数的简单方法附代码
2007/08/13 Javascript
关于JavaScript中string 的replace
2013/04/12 Javascript
ie 7/8不支持trim的属性的解决方案
2014/05/23 Javascript
js图片模糊切换显示特效的方法
2015/02/17 Javascript
在JavaScript的AngularJS库中进行单元测试的方法
2015/06/23 Javascript
jQuery Validate验证框架经典大全
2015/09/23 Javascript
使用jquery插件qrcode生成二维码
2015/10/22 Javascript
原生JS实现拖拽图片效果
2020/08/27 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
2016/09/06 Javascript
vue.js学习笔记之绑定style样式和class列表
2016/10/31 Javascript
使用jQuery ajaxupload插件实现无刷新上传文件
2017/04/23 jQuery
ztree实现权限横向显示功能
2017/05/20 Javascript
JavaScript对象拷贝与Object.assign用法实例分析
2018/06/20 Javascript
layui的table单击行勾选checkbox功能方法
2018/08/14 Javascript
解决微信小程序防止无法回到主页的问题
2018/09/28 Javascript
JavaScript中import用法总结
2019/01/20 Javascript
浅谈Node框架接入ELK实践总结
2019/02/22 Javascript
koa+jwt实现token验证与刷新功能
2019/05/30 Javascript
[03:43]2014DOTA2西雅图国际邀请赛 newbee战队巡礼
2014/07/07 DOTA
Python实现控制台输入密码的方法
2015/05/29 Python
Python while 循环使用的简单实例
2016/06/08 Python
用Django实现一个可运行的区块链应用
2018/03/08 Python
对python中array.sum(axis=?)的用法介绍
2018/06/28 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
2018/08/03 Python
python实现字符串和字典的转换
2018/09/29 Python
Django实现学生管理系统
2019/02/26 Python
伦敦高达60%折扣的钻石珠宝商:Purely Diamonds
2018/06/24 全球购物
JENNIFER BEHR官网:各种耳环和发饰
2020/06/07 全球购物
资生堂英国官网:Shiseido英国
2020/12/30 全球购物
优秀教师获奖感言
2014/01/31 职场文书
学习习近平主席讲话心得体会
2016/01/20 职场文书
2016年教师学习廉政准则心得体会
2016/01/20 职场文书
创业计划书之水果店
2019/07/18 职场文书
mysql sock文件存储了什么信息
2022/07/15 MySQL