参考: http://docs.djangoproject.com/en/dev/topics/files/
Managing files
本手册描述 Django 的 file access APIs
默认情况下, Django 使用 settings 里面的 MEDIA_ROOT 和 MEDIA_URL 参数, 在本地存放文件。
但是, Django 也提供了很多方法定制 "file storage system",以便可以自由 决定何时何地如何存放文件。本文档第二件事情就是介绍 Django 的 "file storage system" ,以便可以定制。
Using files in models
如果使用了 FileField 和 ImageField , Django 提供一些实用的 APIs 细节操 作。下面示例使用了 ImageField :
class Car(models.Model):
name = models.CharField(max_length=255)
price = models.DecimalField(max_digits=5, decimal_places=2)
photo = models.ImageField(upload_to='cars')
现在每个 Car 的实例,都有一个 photo 属性,可以做下面操作:
>>> car = Car.objects.get(name="57 Chevy") >>> car.photo <ImageFieldFile: chevy.jpg> >>> car.photo.name u'cars/chevy.jpg' >>> car.photo.path u'/media/cars/chevy.jpg' >>> car.photo.url u'http://media.example.com/cars/chevy.jpg'
上面实例里的 car.photo 使用 File 对象, 拥有 File 对象的所有方法和属性。
The File object
内部,Django 在想表示一个 File 对象时,总是使用 django.core.files.File 类。这是 Python 内置的 File 类的一个简单封装,绑定了一些 Django 信息。
File storage
DEFAULT_FILE_STORAGE 定义了 Django 的默认 file storage 。
