网上关于Django
Filefield
的文章很少。
今天踩了踩坑,给了一套Filefiled
上传保存文件的方法。
跟一般web开发一样,上传的文件保存在请求体的某个字段中,通常为file
字段
在views.py
中,可以这样获得上传的文件
# view.py
def post(self, request):
avatar = request.FILES.get("file")
这样avatar
就存储了上传的文件,保存其实有很简单的方法,django
替你封装好了:
# view.py
def post(self, request):
import datetime
user.avatar.save("{}_{}.jpg".format(user.id, datetime.datetime.now().strftime('%Y-%m-%d')), avatar)
user.save()
这里顺便对保存的数据进行了格式转化,调用了python
的datatime
包,当然调用time
包或者Django
的timezone
包也是一样的。