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组件即是为了解决该问题而出现的。

待续

posted @ 2013-09-13 22:50  枫桦宁  阅读(1173)  评论(0编辑  收藏  举报