Django实现前台上传并显示图片功能
作者:--TINGXIN-- 发布时间:2022-04-05 19:49:39
标签:Django,前台,上传,图片
1. 前台
templates/upload/upload.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/myupload/upload/" method="post" enctype="multipart/form-data">
{% csrf_token %}
名字:<input type="text" name="name"><br>
头像:<input type="file" name="avator"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
2. 项目设定
settings.py
#添加
ALLOW_UPLOAD = ['jpg', 'png', 'jpeg']
3.app设定
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'), # 上传首页
path('upload/', views.upload), # 上传图片
]
views.py
from django.shortcuts import render
from .models import User,Article
from django.http import HttpResponse
from django.conf import settings
from datetime import datetime
import os
from django.shortcuts import redirect, reverse
import hashlib
# Create your views here.
def index(request):
users = User.objects.all()
article = Article.objects.all()
return render(request, 'myupload/index.html', locals())
def upload(request):
if request.method == 'GET':
return render(request, 'myupload/upload.html')
else:
name = request.POST.get('name')
pic = request.FILES.get('avator')
media_root = settings.MEDIA_ROOT # media
allow_upload = settings.ALLOW_UPLOAD # ALLOW_UPLOAD
# path = 'upload/{}/{}/{}/'.format(datetime.now().year, datetime.now().month, datetime.now().day)
'{:02d}'.format
path = 'upload/{}/{}/{}/'.format(datetime.now().year,'{:02d}'.format(datetime.now().month), '{:02d}'.format(datetime.now().day))
full_path = media_root + '/' + path
# full_path = 'media/upload/2019/12/20'
if not os.path.exists(full_path): # 判断路径是否存在
os.makedirs(full_path) # 创建此路径
# 要不要改图片的名字 生成hash
# 这块要不要判断图片类型 .jpg .png .jpeg
# '/../../../myviews/setting.py'
print(pic)
print(full_path)
print(full_path+pic.name)
if pic.name.split('.')[-1] not in allow_upload:
return HttpResponse('fail')
with open(full_path + '/' + pic.name, 'wb') as f:
for c in pic.chunks(): # 相当于切片
f.write(c)
User.objects.create(name=name, avator=path + pic.name)
return redirect('myupload:index')
Django实现后台上传并显示图片功能
来源:https://www.cnblogs.com/tingxin/p/12939398.html


猜你喜欢
- 本文实例为大家分享了python实现多张图片垂直合并的具体代码,供大家参考,具体内容如下# coding: utf-8 # image_me
- 首先,我想说一下Javascript的装载和执行。通常来说,浏览器对于Javascript的运行有两大特性:1)载入后马上执行,2)执行时会
- 前言没想到python是如此强大,令人着迷,以前看见图片总是一张一张复制粘贴,现在好了,学会python就可以用程序将一张张图片,保存下来。
- 在使用SQL Server 的过程,中由于经常需要从多个不同地点将数据集中起来或向多个地点复制数据,所以数据的导出,导入是极为常见的操作.我
- 我也一一试过,结果是:中文乱码问题没解决,mysql服务却不能启动了, 汗颜了,还是自己动手解决吧,我这里也截图了,方便参观。我用的是app
- global 属性返回 Boolean 值,指出正则表达式使用的global 标志 (g) 的状态。默认值为 false。只读。rgExp.
- 工作中有时候需要对vgg进行定制化处理,比如有些时候需要借助于vgg的层结构,但是需要使用的是2 channels输入,等等需求,这时候可以
- 这是一个很和谐很实用的网站管理程序,和我以前介绍的服务器管理程序不同的是,这个程序只有一个功能,就是实现远程Web方式删除文件(实际上是重命
- 多进程&多线程服务端:多进程和多线程的开启方式相同。缺点:<1> 由于Cpython的GIL,导致同一时间无法运行多个线
- 前言:Pandas 中应用 query 函数来进行数据筛选。query 函数的一般用法如下:df.query('expression
- 使用python3调用wxpy模块,监控linux日志并定时发送消息给群组或好友,具体代码如下所示:#!/usr/bin/env pytho
- 这篇文章主要介绍了微信小程序 云开发模糊查询实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友
- 什么是分页查询分页查询就是把query到的结果集按页显示。比如一个结果集有1W行,每页按100条数据库。而你获取了第2页的结果集。为什么要分
- 一、python多线程因为CPython的实现使用了Global Interpereter Lock(GIL),使得python中同一时刻只
- 本文为大家分享了Python实现全排列的打印的代码,供大家参考,具体如下问题:输入一个数字:3,打印它的全排列组合:123 132 213
- 本文实例讲述了Python函数的定义和作用域。分享给大家供大家参考,具体如下:定义函数默认参数: 可以向函数中添加默认参数,以便为在函数调用
- 因为最近公司有python项目维护,所以把python的基础入门的书整理一遍,因为有些忘记了,同时在看<<python编程>
- 使用摄像头追踪人脸由于血液流动引起的面部色素的微小变化实现实时脉搏评估。效果如下(演示视频): 由于这是通过比较面部色素的变化评估
- 大部分语言,例如c语言,交换两个变量的值需要使用中间变量。例如交换a,b伪代码:tmp = aa = bb = tmppython里面可以实
- 前言根据《2021年Stackoverflow开发者调查》,SQL是最常用的五种编程语言之一。所以,我们应该多投入时间来学习SQL。由Sto