Python decorators

Python 裡的所有東西都是 object function 也是 所以你可以對 function 做任何跟 object 一樣的事 例如把一個 function 當成參數丟給另一個 function 當然也可以 decorate class 不帶參數的 decorator 第一層 def 接收 func 第二層 def 接收 func 的 *args, **kwargs 通常意義下的 decorator 是把 func(就是 something_1、something_2)丟給 decorator function 做一些額外的動作 然後回傳該 func 原本的 return 並不操作 func 本身 如果要操作 func 本身 例如幫 func 增加一個 attribute 請參考下下面的例子 def func_wrapper(func):… Read More

Read and Write Files in Django and Python

File 和 ImageFile 接受 Python 的 file 或 StringIO 物件 而 ContentFile 接受 string ref: https://docs.djangoproject.com/en/dev/ref/files/file/#the-file-object Django Form image_file = request.FILES['file'] # 方法一 profile.mugshot.save(image_file.name, image_file) # 方法二 profile.mugshot = image_file profile.save() open('/path/to/file.png') from django.core.files import File with open('/home/vinta/image.png', 'rb') as f: profile.mugshot = File(f) profile.save() Django ContentFile import os import uuid from django.core.files.base import ContentFile… Read More