跳转到主要内容

Django存储系统,将上传文件存储在数据库和文件系统中。上游:https://pypi.ac.cn/project/django-binary-database-files/ 。+Python 3.1x。

项目描述

Django二进制数据库文件 +Python 3.1x

上游: https://pypi.ac.cn/project/django-binary-database-files/ +Python 3.1x

Django二进制数据库文件

Build Status

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

警告:从Django中提供静态文件通常不是一个好主意,但有某些有效的用例。如果您的Django应用程序位于缓存反向代理后面,并且您需要扩展应用程序服务器,则将文件存储在数据库中可能更简单。

基于 Kimetrica 的 django-database-files,rhunwickschrisspenbfirsh,但已更新以与Django 2.2-4.0,Python 3.6+ 兼容并使用二进制字段进行存储。

要求

  • Django 2.2 - 4.0

安装

只需使用pip通过以下方式安装:

pip install django-binary-database-files

用法

settings.py 文件中,将 binary_database_files 添加到你的 INSTALLED_APPS,并添加以下行:

DEFAULT_FILE_STORAGE = 'binary_database_files.storage.DatabaseStorage'

注意,upload_to 参数仍然用于同步数据库中存储的文件与文件系统中的文件,因此新字段和现有字段仍然应该具有从你的基本媒体目录中得出的有意义值。

如果你正在将包添加到现有的带有现有文件的 Django 安装中,请运行:

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 = [
          # ... the rest of your URLconf goes here ...
    
          # Serve Database Files directly
          path(r"", include("binary_database_files.urls")),
      ]
    
  • 数据库文件基本 URL

    允许存储后端的 url 方法在提供时返回一个绝对 URL。

开发

应该使用以下工具进行代码审查:

./pep8.sh

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

sudo apt-get install python3-dev python3.6-dev

要跨多个 Python 版本运行单元测试,请安装:

sudo apt-get install python3.6-minimal python3.6-dev python3.7-minimal python3.7-dev

要运行所有 测试

export TESTNAME=; tox

要运行特定环境的测试(例如 Python 3.6 与 Django 2.2)

export TESTNAME=; tox -e py36-django22

要运行特定的测试

export TESTNAME=.test_adding_file; tox -e py36-django22

要构建和部署带有版本号的包到 PyPI,请确保 所有单元测试都通过,然后增加(并提交)binary_database_files/__init__.py 中的版本号,然后运行

python setup.py sdist bdist_wheel
twine check dist/*
twine upload dist/*

项目详情


下载文件

下载适用于您平台的应用程序文件。如果您不确定要选择哪一个,请了解更多关于 安装包 的信息。

源代码分发

django-binary-database-files-dimaqq-py31x-1.0.17.post1.tar.gz (34.6 kB 查看哈希值)

上传时间: 源代码

构建分发

支持