为Django提供的一个存储系统,可以将上传的文件存储在数据库和文件系统中。
项目描述
Django数据库文件3000
这是一个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,初始模型迁移将扫描所有现有的模型以查找 FileFields
或 ImageFields
,并自动将它们加载到数据库中。
如果您出于任何原因想要重新运行此批量导入任务,请运行
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的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bd3268f196a62bf67b5a1c645e8a04cb8756184fc55b96a46b1f46ae7f54e537 |
|
MD5 | d1dfb84d41a961d477913a14c808f6d9 |
|
BLAKE2b-256 | 98f736b164c0a1a4442cdaf38076ec64f08e368991ad10040af446b3ad41185a |