Django后台获取前端post上传的文件方法
今天无聊就来写写django后台上传文件的方法
准备工作
django-admin startproject uploadimg新建django项目

cd uploadimg进入自己创建的项目,然后django-admin startapp index创建app,名字index

在项目根目录下创建一个静态文件夹
pubstatic,等会上传的文件就保存到这里

修改
settings.py文件,因为这次,只涉及上传图片到django后台,就只设置这几项
- 1.第一步当然是注册app咯~

- 2.设置模板路径

- 3.设置静态文件路径,
STATICFILES_DIRS,这个就是为了查找静态文件,上面那个STATIC_URL = '/static/'这个本来就存在,它会自动到上面注册好的app下进行查看static静态文件夹

到这,对于这次的博客配置基本结束
URL改写
在
uploadimg文件夹下的urls.py进行配置,path('',include('index.urls')),URL为空,将URL分发给index的urls.py处理

所以,我们要在
index下创建urls.py文件,因为本来是不存在的,然后进行简单的代码

第一个
upload.html就是简单的展示界面,展示一个form表单,views.py文件中index函数
1 | from django.shortcuts import render |
form.html html文件代码基本如下,注意在
form表单的定义中一定要加上enctype= “multipart/form-data"属性,否则后台可能会取不到文件
1 | {% load static %} #这个为了能够调用静态文件 |
上面那个form表单
action就是跳转到uploadimg,index下的urls.py就接受这个url,调用ChangImg函数
1 | from django.shortcuts import render |
当我们获取到图片img后,可以通过
image=request.FILES.get(‘images’)去获取到该图片
image.name 获取到图片的名字
image.size获取到图片的大小
image.read()可以获取图片内容
通过
default_storage.save(save_path,ContentFile(image.read()))把图片缓存到指定文件,save_path就是前面构造的存储路径,如果不存在路径会自动创建
from django.conf import settingsimport的settings可以访问settings.py文件中的属性,STATICFILES_DIRS[0],就是前面设置的静态文件路径
成功截图
点击提交后,跳转到
uploadimgurl,接受后,调用ChangeImg函数,request.FILES.get('images')获取图片,这个'images'就是前面选图片的input标签的name属性值。
获取图片后 ,调用
default_storage.save(save_path,ContentFile(image.read()))保存图片





这次的博客就到这里了,So
Just have fun…