django 上传文件到数据库
必备知识:https://docs.djangoproject.com/en/dev/ref/files/storage/#django.core.files.storage.FileSystemStorage
https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpResponse
http://www.python.org/doc//current/library/mimetypes.html 关于mimetypes mimetypes模块根据文件扩展名在一个文件名或URL和MIME类型之间转换。
思路来源:进入
首先我们要了解File Storage API 见官方文档我们知道FileField和ImageField 默认的存储在服务器端的文件系统里,但是有的时候我们希望把文件数据存储到数据库里面,所以我们重新定义一个类,继承于class Storage,
我们要定义save(),open(),delete() 等方法,但是不同的是存储在数据库里面,这就需要我们明白django对数据库的操作(见我另一篇文章)
file=models.FileField(upload_to='file/%Y%m%d',storage=DatabaseStorage(options=DBS_OPTIONS))
DatabaseStorage就是我们定义的类,options是参数
注意: 不要把视频大文件上传,不然会造成数据库负荷过大
我们知道django提供syncdb命令,用于从models自动生成数据库。但在models结构变化后,syncdb并无法自动实现数据库的更新。South组件即是为了解决该问题而出现的。
待续