Django后台获取前端post上传的文件方法

yipeiwu_com6年前Python基础

由于初学Django所以对于其特有的表单模板和models中的filefiled并不是特别熟悉。因此在本次开发中还是依照以往自己在html中写好图片提交表单:

注意在<form>表单的定义中一定要加上enctype= “multipart/form-data"属性,否则后台可能会取不到文件。

在form表单后一定要有{% csrf_token %}

我们在控制页面可以看到,当我们通过这样的表单进行提交后,FILES一栏中会有一个文件。

我们可以在views.py中通过

image=request.FILES.get('images')去获取到该图片

当我们获取到图片img后,可以通过

image.name 获取到图片的名字

image.size获取到图片的大小

image.read()可以获取图片内容

通过

path=default_storage.save(路径,ContentFile(image.read()))

tmp_file = os.path.join(settings.MEDIA_ROOT,path)

及可以把图片从缓存中保存到相应路径下

我们可以看到很上传的额图片已经直接能够保存在设置的目录当中了

最后再将对应的路径放入数据库中,就可以完成引用了。

以上这篇Django后台获取前端post上传的文件方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Tensorflow 同时载入多个模型的实例讲解

有时我们希望在一个python的文件空间同时载入多个模型,例如 我们建立了10个CNN模型,然后我们又写了一个预测类Predict,这个类会从已经保存好的模型restore恢复相应的图结...

python设计tcp数据包协议类的例子

python设计tcp数据包协议类的例子

一. 问题描述 在tcp编程中,最需要解决的就是粘包分包问题。所以,我们需要在每个数据包前面加上数据包的长度用以分割粘连的包。 二. 包结构的设计 包的组成:包长度+数据域 包长度:用4...

pytorch: tensor类型的构建与相互转换实例

Summary 主要包括以下三种途径: 使用独立的函数; 使用torch.type()函数; 使用type_as(tesnor)将张量转换为给定类型的张量。 使用独立函数 impor...

Python中几个比较常见的名词解释

循环(loop),指的是在满足条件的情况下,重复执行同一段代码。比如,while语句。 迭代(iterate),指的是按照某种顺序逐个访问列表中的每一项。比如,for语句。 递归(rec...

python ftp 按目录结构上传下载的实现代码

具体代码如下所示: #!/usr/bin/python # coding=utf-8 from ftplib import FTP import time import os def...