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中的递归函数
Apr 27 Python
Python的GUI框架PySide的安装配置教程
Feb 16 Python
浅谈python中的getattr函数 hasattr函数
Jun 14 Python
Python字典实现简单的三级菜单(实例讲解)
Jul 31 Python
python使用SMTP发送qq或sina邮件
Oct 21 Python
Python常见工厂函数用法示例
Mar 21 Python
Python爬虫之网页图片抓取的方法
Jul 16 Python
Flask之请求钩子的实现
Dec 23 Python
详解Python中第三方库Faker
Sep 25 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
Dec 03 Python
浅谈matplotlib默认字体设置探索
Feb 03 Python
详解Django中 render() 函数的使用方法
Apr 22 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
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
PHP开启gzip页面压缩实例代码
2010/03/11 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
2014/04/08 PHP
ThinkPHP使用smarty模板引擎的方法
2014/07/01 PHP
浅谈php中变量的数据类型判断函数
2017/03/04 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
2017/05/30 PHP
关于PHP中协程和阻塞的一些理解与思考
2017/08/11 PHP
PHP使用PDO操作sqlite数据库应用案例
2019/03/07 PHP
doctype后如何获得body.clientHeight的方法
2007/07/11 Javascript
基于jquery css3实现点击动画弹出表单源码特效
2015/08/31 Javascript
AngularJS中的Directive自定义一个表格
2016/01/25 Javascript
jQuery使用经验小技巧(推荐)
2016/05/31 Javascript
AngularJS基础 ng-value 指令简单示例
2016/08/03 Javascript
深入理解vue.js双向绑定的实现原理
2016/12/05 Javascript
微信小程序教程系列之视图层的条件渲染(10)
2017/04/19 Javascript
JS触摸事件、手势事件详解
2017/05/04 Javascript
使用JS中的Replace()方法遇到的问题小结
2017/10/20 Javascript
在vue-cli中组件通信的方法
2017/12/16 Javascript
Vue2.X 通过AJAX动态更新数据
2018/07/17 Javascript
浅析Vue下的components模板使用及应用
2019/11/27 Javascript
vue-preview动态获取图片宽高并增加旋转功能的实现
2020/07/29 Javascript
vue 动态添加的路由页面刷新时失效的原因及解决方案
2021/02/26 Vue.js
[01:17:47]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[38:42]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第二场 11.05
2020/11/05 DOTA
Python利用operator模块实现对象的多级排序详解
2017/05/09 Python
python寻找list中最大值、最小值并返回其所在位置的方法
2018/06/27 Python
从DataFrame中提取出Series或DataFrame对象的方法
2018/11/10 Python
Django实现微信小程序的登录验证功能并维护登录态
2019/07/04 Python
Python3之字节串bytes与字节数组bytearray的使用详解
2019/08/27 Python
python集合能干吗
2020/07/19 Python
Ajax请求总共有多少种Callback
2016/07/17 面试题
营销部内勤岗位职责
2014/04/30 职场文书
上党课的心得体会
2014/09/02 职场文书
带刀到教室的检讨书
2014/10/04 职场文书
2015年银行工作总结范文
2015/04/01 职场文书
Java中的Kotlin 内部类原理
2022/06/16 Java/Android