Django Filefield 保存用戶上傳文件
網上關於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
包也是一樣的。