Django 的自定义数据库存储
项目描述
django-db-storage2
.. 图像:: https://travis-ci.org/derekkwok/django-db-storage.svg?branch=master :target: https://travis-ci.org/derekkwok/django-db-storage
.. 图像:: https://coveralls.io/repos/github/derekkwok/django-db-storage/badge.svg?branch=master :target: https://coveralls.io/github/derekkwok/django-db -storage?branch=master
.. 图片::https ://badge.fury.io/py/django-db-storage.svg :目标:https ://badge.fury.io/py/django-db-storage
概述
警告:在许多情况下,将文件存储在数据库中是一个坏主意。您的数据库很容易变得臃肿,性能会迅速下降。有关更多信息,请参阅此StackExchange post_。
.. _StackExchange 帖子:http ://programmers.stackexchange.com/questions/150669/is-it-a-bad-practice-to-store-large-files-10-mb-in-a-database
这是一个自定义存储后端,用于将文件存储在数据库而不是文件系统中,并且是 Django 的 FileSystemStorage 的直接替代品。此应用程序的一些好处:
- 无需对现有模型进行更改,它就可以工作(如果没有,请开票!)
- django-admin 实现,可用于搜索、上传、下载和管理文件
- 单元测试 100% 的代码覆盖率
.. 图片:: http: //i.imgur.com/4g9tmEZt.png :目标:http: //i.imgur.com/4g9tmEZ.png
.. 图片:: http: //i.imgur.com/A2F8xlrt.png :目标:http: //i.imgur.com/A2F8xlr.png
要求
- Python (3.5+)
- Django (1.11.17+)
安装
使用 pip:: 安装
$ pip install django-db-storage2
更新settings.py
.. 代码块:: python
# Add 'dbstorage' to INSTALLED_APPS
INSTALLED_APPS = [
'dbstorage',
]
# Optionally set DEFAULT_FILE_STORAGE
DEFAULT_FILE_STORAGE = 'dbstorage.storage.DBStorage'
# Choose a root url for uploaded files
MEDIA_URL = '/media/'
更新urls.py
.. 代码块:: python
urlpatterns = [
...
dbstorage_url(),
]
运行数据库迁移
::
$ python manage.py migrate
如何使用
模型无需修改即可正常工作。
.. 代码块:: python
def user_directory_path(instance, filename):
return 'user_{0}/{1}'.format(instance.user.id, filename)
class MyModel(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)
虫子?
在https://github.com/derekkwok/django-db-storage/issues创建一个问题
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
内置分布
django_db_storage2-2.0.2.2 -py2.py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | b0d297825de2e77557ea15cb48811ec0948af90fa2f20d7c3c7159d6df4cc4ed |
|
| MD5 | 9a8d36bdcf0c45102c00a8cff334a995 |
|
| 布莱克2-256 | 3c5a3dc62b9293b2a0aff57fc143a1489e868b8c6d2c57386ddc6857911eaf13 |