Django的自定义数据库存储

django-db-storage的Python项目详细描述


https://travis-ci.org/derekkwok/django-db-storage.svg?branch=masterhttps://coveralls.io/repos/github/derekkwok/django-db-storage/badge.svg?branch=masterhttps://badge.fury.io/py/django-db-storage.svg

概述

警告:在许多情况下,在数据库中存储文件是一个坏主意。您的数据库将很容易变得臃肿,性能可能会迅速下降。有关详细信息,请参阅此StackExchange post

这是一个用于将文件存储在数据库而不是文件系统中的自定义存储后端,是django的文件系统存储的替代品。此应用程序的一些优点:

    不存在对现有模型的更改,它只是工作(如果没有,打开一张票!)
  • Django Admin已实现,可用于搜索、上载、下载和管理文件
  • 单元测试的100%代码覆盖率
http://i.imgur.com/4g9tmEZt.pnghttp://i.imgur.com/A2F8xlrt.png

要求

  • Python(2.7、3.4、3.5)
  • Django(1.8,1.9)

安装

使用PIP安装:

$ pip install django-db-storage

更新settings.py

# Add 'dbstorage' to INSTALLED_APPSINSTALLED_APPS=['dbstorage',]# Optionally set DEFAULT_FILE_STORAGEDEFAULT_FILE_STORAGE='dbstorage.storage.DBStorage'# Choose a root url for uploaded filesMEDIA_URL='/media/'

更新urls.py

urlpatterns=[...dbstorage_url(),]

运行数据库迁移

$ python manage.py migrate

如何使用

模型正常工作不需要修改。

defuser_directory_path(instance,filename):return'user_{0}/{1}'.format(instance.user.id,filename)classMyModel(models.Model):file_field1=models.FileField()file_field2=models.FileField(upload_to='uploads/%Y/%m/%d/')file_field3=models.FileField(upload_to=user_directory_path)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将cassandra中的行数据转换为与列相关的嵌套json   java如何使用jcr XPath在jcr:content/@jcr:data中搜索?   java在使用openCV进行安卓开发时如何利用手机的广角镜头   java解析扩展了接口,结束了一个潜在的无限循环   位置服务的@Override方法中存在java Android应用程序错误   java本地线程的用途和需求是什么   具有左右子访问的java节点树遍历   java验证JsonWebToken签名   JUL日志处理程序中的java日志记录   嵌入式Java读取给定时间段的串行数据。   java有没有办法从多个URL获取多个图像?   java线程通过等待intent阻止自己发送intent   java Spring MVC解析多部分内容请求   java JPA/Hibernate静态元模型属性未填充NullPointerException   java格式错误的字符(需要引号,得到I)~正在处理   java为什么PrintWriter对象抛出FileNotFoundException?   java Neo4j未正确保存标签   java IE不加载图像