跳转到主要内容

为Django提供的一个存储系统,可以将上传的文件存储在数据库和文件系统中。

项目描述

Django数据库文件3000

Build Status

这是一个Django的存储系统,用于将上传的文件存储在数据库中。文件可以从数据库(通常不是一个好主意)、文件系统或CDN中提供。

安装

只需通过pip使用以下命令进行安装

pip install django-database-files-3000

使用方法

settings.py 中,将 database_files 添加到您的 INSTALLED_APPS 并添加此行

DEFAULT_FILE_STORAGE = 'database_files.storage.DatabaseStorage'

注意,仍然使用 upload_to 参数来同步数据库中存储的文件与文件系统中的文件,因此新和现有字段仍然应该有一个从您的媒体基本目录中合理解释的值。

如果您正在使用South,初始模型迁移将扫描所有现有的模型以查找 FileFieldsImageFields,并自动将它们加载到数据库中。

如果您出于任何原因想要重新运行此批量导入任务,请运行

python manage.py database_files_load

另外,如果您想将数据库中的所有文件导回到文件系统,请运行

python manage.py database_files_dump

注意,当清除引用文件的字段时,数据库和文件系统中的相应文件将不会自动删除。要删除所有未由任何模型字段引用的数据库和文件系统中的文件,请运行

python manage.py database_files_cleanup

设置

  • DB_FILES_AUTO_EXPORT_DB_TO_FS = True|False (默认 True)

    如果为真,当文件上传或从数据库读取时,将创建一个副本并将其导出到与FileField的upload_to路径对应的媒体目录,就像默认的Django文件存储一样。

    如果为假,文件将仅存在于数据库中。

  • DATABASE_FILES_URL_METHOD = URL_METHOD_1|URL_METHOD_2 (默认 URL_METHOD_1)

    定义了渲染文件可访问URL时要使用的方法。

    如果为URL_METHOD_1,假设所有文件都已导出到文件系统,并使用与settings.MEDIA_URL对应的路径。

    如果为URL_METHOD_2,使用绑定到database_file视图的URL,动态查找并从文件系统或数据库中提供文件。

    在这种情况下,您还需要更新您的urls.py以包含提供文件的视图

      urlpatterns = patterns('',
          # ... the rest of your URLconf goes here ...
    
          # Serve Database Files directly
          url(r'', include('database_files.urls')),
      )
    

开发

测试需要安装Python开发头文件,您可以在Ubuntu上使用以下命令安装

sudo apt-get install python-dev python3-dev python3.4-dev

要跨多个Python版本运行unittests,请安装

sudo apt-get install python3.4-minimal python3.4-dev python3.5-minimal python3.5-dev

注意,您可能需要启用额外的存储库以提供这些包。

要运行所有测试

export TESTNAME=; tox

要运行特定环境的测试(例如,Python 2.7与Django 1.4)

export TESTNAME=; tox -e py27-django15

要运行特定测试

export TESTNAME=.test_adding_file; tox -e py27-django15

要构建和部署一个版本化的包到PyPI,请验证所有unittests都通过,然后运行

python setup.py sdist
python setup.py sdist upload

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解安装包的更多信息。

源分布

django-database-files-3000-1.0.5.tar.gz (24.9 kB 查看哈希)

上传时间

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面