文件上传Django
2024-09-03 11:56:38
- 当Django在处理文件上传的时候,文件数据被保存在request.FILES
- FILES中的每个键为<input type="file" name="" />中的name
- 注意:FILES只有在请求的方法为POST 且提交的<form>带有enctype="multipart/form-data" 的情况下才会包含数据。否则,FILES 将为一个空的类似于字典的对象
- 使用模型处理上传文件:将属性定义成models.ImageField类型
pic=models.ImageField(upload_to='cars/')
- 注意:如果属性类型为ImageField需要安装包Pilow
pip install Pillow
- 图片存储路径
- 在项目根目录下创建media文件夹
- 图片上传后,会被保存到“/static/media/cars/图片文件”
- 打开settings.py文件,增加media_root项
MEDIA_ROOT=os.path.join(BASE_DIR,"static/media")
- 使用django后台管理,遇到ImageField类型的属性会出现一个file框,完成文件上传
- 手动上传的模板代码
<html>
<head>
<title>文件上传</title>
</head>
<body>
<form method="post" action="upload/" enctype="multipart/form-data">
<input type="text" name="title"><br>
<input type="file" name="pic"/><br>
<input type="submit" value="上传">
</form>
</body>
</html>
- 手动上传的视图代码
from django.conf import settings
def upload(request):
if request.method == "POST":
f1 = request.FILES['pic']
fname = os.path.join(settings.MEDIA_ROOT,f1.name)
with open(fname, 'wb+') as pic:
for c in f1.chunks():
pic.write(c)
return HttpResponse("ok")
else:
return HttpResponse("error")
最新文章
- WPF 自定义窗口关闭按钮
- 基于jQuery的自适应图片左右切换
- 【转载】Chaotic Time-Series Prediction
- iOS应用架构谈 网络层设计方案
- bzoj1040
- 【转】gcc warning: braces around scalar initializer (标量初始化的括号)
- SQL 表连接,内联、外联、全连
- React入门---属性(state)-7
- 同一脚本sh 脚本名 报Syntax error: ";("; unexpected而./脚本名不报错,求解!!
- Document.write和 getElementById(ID)
- 最简单例子图解JVM内存分配和回收(转)
- python魔法方法-反射运算和增量运算
- 【树莓派】使用VNC进行远程控制
- [源][osg][osgBullet]osgBullet例子介绍
- Qt Creator 预览QtCreator中的界面
- .NET:CLR via C# Exceptions and State Management
- elment 中 el-table 进行校验
- BeanFactory笔记
- HDU 2492 Ping pong(数学+树状数组)(2008 Asia Regional Beijing)
- Strategy Pattern(策略模式)
热门文章
- Cuckoo hash算法分析——其根本思想和bloom filter一致 增加hash函数来解决碰撞 节省了空间但代价是查找次数增加
- nodejs 解析 base64 文本
- OpenCV-Python sift/surf特征匹配与显示
- Python 转义字符中没有这个 「\e」 !
- logback个人使用配置
- 转载:IntelliJ IDEA 2016.2 配置Tomcat 运行Web项目
- ObservableCollection和List的区别总结
- ADO.NET 对象
- javaScript之事件处理程序
- day03 hadoop的解压与配置文件的配置,还需要看视频