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 相关文章推荐
仅用50行Python代码实现一个简单的代理服务器
Apr 08 Python
Python中的if、else、elif语句用法简明讲解
Mar 11 Python
Pycharm编辑器技巧之自动导入模块详解
Jul 18 Python
Python线程下使用锁的技巧分享
Sep 13 Python
Python数据预处理之数据规范化(归一化)示例
Jan 08 Python
详解Python Matplot中文显示完美解决方案
Mar 07 Python
在Pandas中处理NaN值的方法
Jun 25 Python
python numpy存取文件的方式
Apr 01 Python
pycharm 2019 最新激活方式(pycharm破解、激活)
Sep 22 Python
基于pytorch padding=SAME的解决方式
Feb 18 Python
Python 中 Shutil 模块详情
Nov 11 Python
python双向链表实例详解
May 25 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 设计模式系列之 specification规格模式
2016/01/10 PHP
让网页根据不同IE版本显示不同的内容
2009/02/08 Javascript
document.getElementById的简写方式(获取id对象的简略写法)
2010/09/10 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
Javascript 浮点运算的问题分析与解决方法
2013/08/27 Javascript
通过JQuery将DIV的滚动条滚动到指定的位置方便自动定位
2014/05/05 Javascript
javacript使用break内层跳出外层循环分析
2015/01/12 Javascript
JavaScript构造函数详解
2015/12/27 Javascript
Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享
2016/06/07 Javascript
关于javascript的一些知识以及循环详解
2016/09/12 Javascript
AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法
2016/12/14 Javascript
jQuery实现页面滚动时智能浮动定位
2017/01/08 Javascript
JS 在数组指定位置插入/删除数据的方法
2017/01/12 Javascript
详解使用vue实现tab 切换操作
2017/07/03 Javascript
jquery拖动改变div大小
2017/07/04 jQuery
微信小程序实现简单input正则表达式验证功能示例
2017/11/30 Javascript
vue2.0 循环遍历加载不同图片的方法
2018/03/06 Javascript
vue之将echart封装为组件
2018/06/02 Javascript
原生JS封装_new函数实现new关键字的功能
2018/08/12 Javascript
vue 搭建后台系统模块化开发详解
2019/05/01 Javascript
webpack项目使用eslint建立代码规范实现
2019/05/16 Javascript
bootstrap table插件动态加载表头
2019/07/19 Javascript
Java Varargs 可变参数用法详解
2020/01/28 Javascript
加速vue组件渲染之性能优化
2020/04/09 Javascript
Django实现auth模块下的登录注册与注销功能
2019/10/10 Python
Django xadmin安装及使用详解
2020/10/26 Python
纯CSS3大转盘抽奖示例代码(响应式、可配置)
2017/01/13 HTML / CSS
TUMI新加坡官网:国际领先的商旅箱包品牌
2019/01/12 全球购物
意大利巧克力店:Chocolate Shop
2019/07/24 全球购物
业务经理岗位职责
2013/11/11 职场文书
小学生运动会报道稿
2014/09/12 职场文书
2014年学校教学工作总结
2014/12/06 职场文书
党的群众路线教育实践活动先进个人材料
2014/12/24 职场文书
新教师教学工作总结
2015/08/14 职场文书
2016年幼儿园万圣节活动总结
2016/04/05 职场文书
图解排序算法之希尔排序Java实现
2021/06/26 Java/Android