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的re模块应用实例
Sep 26 Python
python妹子图简单爬虫实例
Jul 07 Python
Python与Java间Socket通信实例代码
Mar 06 Python
Python实现读取并保存文件的类
May 11 Python
深入浅出学习python装饰器
Sep 29 Python
django静态文件加载的方法
May 20 Python
点球小游戏python脚本
May 22 Python
利用Python如何批量修改数据库执行Sql文件
Jul 29 Python
使用python实现数组、链表、队列、栈的方法
Dec 20 Python
Python bytes string相互转换过程解析
Mar 05 Python
python实现启动一个外部程序,并且不阻塞当前进程
Dec 05 Python
详解Python自动化之文件自动化处理
Jun 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
PHILIPS L4X25T电路分析和打理
2021/03/02 无线电
PHP 文件上传进度条的两种实现方法的代码
2007/11/25 PHP
php仿discuz分页效果代码
2008/10/02 PHP
PHP 使用header函数设置HTTP头的示例解析 表头
2013/06/17 PHP
php实现学生管理系统
2020/03/21 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
2016/11/09 PHP
利用PHP获取汉字首字母并且分组排序详解
2017/10/22 PHP
document.forms用法示例介绍
2014/06/26 Javascript
jquery UI Datepicker时间控件的使用方法(终结版)
2015/11/07 Javascript
JavaScript电子时钟倒计时第二款
2016/01/10 Javascript
JS函数定义方式的区别介绍
2016/03/22 Javascript
JavaScript仿flash遮罩动画效果
2016/06/15 Javascript
遍历json 对象的属性并且动态添加属性的实现
2016/12/02 Javascript
Node.js通过身份证号验证年龄、出生日期与性别方法示例
2017/03/09 Javascript
Vue中computed与methods的区别详解
2018/03/24 Javascript
webpack4 css打包压缩问题的解决
2018/05/18 Javascript
详解vue-cli下ESlint 配置说明
2018/09/03 Javascript
深入理解Vue 的钩子函数
2018/09/05 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
2018/09/28 Javascript
在element-ui的select下拉框加上滚动加载
2019/04/18 Javascript
Python2.5/2.6实用教程 入门基础篇
2009/11/29 Python
python处理html转义字符的方法详解
2016/07/01 Python
python模块之re正则表达式详解
2017/02/03 Python
python监控文件并且发送告警邮件
2018/06/21 Python
pycharm: 恢复(reset) 误删文件的方法
2018/10/22 Python
Python的UTC时间转换讲解
2019/02/26 Python
python同步两个文件夹下的内容
2019/08/29 Python
python中通过selenium简单操作及元素定位知识点总结
2019/09/10 Python
Django项目使用ckeditor详解(不使用admin)
2019/12/17 Python
个人简历自我评价
2014/02/02 职场文书
四查四看剖析材料
2014/02/14 职场文书
建房协议书
2014/04/11 职场文书
运动会报道稿大全
2015/07/23 职场文书
领导干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
go语言中json数据的读取和写出操作
2021/04/28 Golang
Python集合的基础操作
2021/11/01 Python