适用于Django的可插拔应用程序,帮助您通过管理界面导入/导出固定数据
项目描述
Django Smuggler 是一个适用于 Django Web 框架 的可插拔应用程序,通过自动生成的管理界面轻松导出/导入固定数据。固定数据是一个文件,包含序列化到例如 JSON 或 XML 的模型数据,Django知道如何将其导入到数据库中。
Smuggler 特别适用于在生产环境和开发环境之间传输数据库数据,但也可以用作备份工具。
- 项目页面
- 翻译
安装和设置
Smuggler 在 Python 包索引 (PyPI) 上,您可以使用工具 pip 或 easy_install 轻松安装最新稳定版本。试试
pip install django-smuggler
或者
easy_install django-smuggler
另外,您可以从源代码安装 Smuggler,在包含 setup.py 文件的目录中运行以下命令
python setup.py install
安装后,您需要配置项目以识别 Smuggler 应用程序,将 'smuggler' 添加到您的 INSTALLED_APPS 设置中,并设置项目的 URLConf 如下所示
urlpatterns = [ # ... path('admin/', include('smuggler.urls')), # before admin url patterns! path('admin/', admin.site.urls), ]
然后尝试访问以下 URL
/admin/load/,从上传的文件或 SMUGGLER_FIXTURE_DIR 上的文件加载数据;
/admin/dump/,从整个项目下载数据;
您也可以传递一个查询字符串,如 /admin/dump/?app_label=flatpages,auth,yourapp.model,以指定必须导出的内容。
/admin/APP_LABEL/dump/,从应用程序下载数据;
/admin/APP_LABEL/MODEL_LABEL/dump/,从模型下载数据;
如果可以访问上述 URL,则应用程序已正确设置。请注意,这些 URL 仅对超级用户可访问。
Smuggler 还提供了一个模板,可以在更改列表页面 (change_list.html) 上显示导出和加载数据的按钮。您可以按以下方式设置您感兴趣的 ModelAdmin
class ExampleAdmin(admin.ModelAdmin): change_list_template = 'smuggler/change_list.html' ...
设置
Smuggler 有以下设置可用。您可以在项目的 settings.py 中设置它们。如果您没有设置它们,它将使用默认值
- SMUGGLER_EXCLUDE_LIST
要排除从导出中的模型的列表。使用形式 'app_label.ModelName'。默认:[]。
- SMUGGLER_FIXTURE_DIR
上传的 fixtures 存储在此目录中(如果请求)。默认:None。
- SMUGGLER_FORMAT
导出文件的格式。Django 支持的任何序列化格式,包括 json、xml 和在某些情况下 yaml。默认:'json'。
- SMUGGLER_INDENT
导出文件的缩进。默认:2。
屏幕截图
change_list.html 中的按钮
加载表单(已配置 SMUGGLER_FIXTURE_DIR)
发布说明
版本 1.0.4(2022-02-03)
修复 #76
版本 1.0.3(2021-08-12)
修复加载表单模板中的错误
版本 1.0.2(2020-09-28)
支持 Django 3.1
版本 1.0.1(2020-05-15)
修复 Python 打包设置
版本 1.0.0(2020-04-20)
支持 Django 3.0
放弃对 Python < 3.6 和 Django < 2.2 的支持
版本 0.9.1(2018-11-05)
支持 Django 2.1
版本 0.9.0(2018-03-22)
支持 Django 2.0
放弃对 Django < 1.10 的支持
版本 0.8.0(2016-11-09)
支持 Django 1.10
版本 0.7.0(2016-02-25)
支持 Django 1.8
支持 Django 1.9
放弃对 Django < 1.7 的支持
放弃对 Python < 2.7 的支持
版本 0.6.1(2015-11-25)
通过支持 dumpdata 的 use_natural_foreign_keys 和 use_natural_primary_keys 参数来提高 Django 1.7 兼容性
版本 0.6(2014-09-18)
现在支持 fixtures 上传的 HTML5 多文件上传
同时支持从 SMUGGLER_FIXTURE_DIR 加载 fixtures 和上传
正确识别大写文件扩展名的 fixtures
现在加载 fixtures 使用 loaddata 管理命令
删除 signals.py
删除示例模板
更干净的代码和更好的测试 :-)
版本 0.5(2014-08-21)
为 /dump/ 视图添加了指定应用程序标签列表的选项
改进了测试套件
放弃对 Django 1.3 的支持
初步支持 Python 3
版本 0.4.1(2013-11-12)
变更列表模板现在与 Django 1.6 兼容
版本 0.4(2013-04-01)
支持 Django 1.5+
添加了德语翻译
添加了一些测试
版本 0.3(2012-01-31)
在加载数据和导出数据时进行了重大错误修复和改进
除了 JSON 和 XML 格式外,允许导入其他格式(aa105b3,需要文档)
添加了荷兰语翻译
版本 0.2(2011-08-19)
支持 Django 1.2+
将上传的文件作为导入的备选方案保留(问题 #1 和 #6)
修复了漏洞(d73cec6)
添加了波兰语、俄语、加泰罗尼亚语和巴西葡萄牙语翻译
版本 0.1.1(2010-01-20)
第一个稳定版本
向后不兼容的更改
删除了 AdminFormMixin(版本 0.7)
删除了 signals.py(版本 0.6)
将 urls 重命名为 import/export 为 load/dump(版本 0.1)
贡献
如果您在代码或文档中发现问题,请花 30 秒钟填写一个问题。
对代码或翻译的贡献将受到高度赞赏。请随意分支或发送补丁。
您可以使用 Transifex 将此应用程序翻译成您的语言。访问Transifex 上的项目页面。
有关此应用程序的完整作者列表,请参阅 AUTHORS 文件。
感谢互动联盟赞助项目的第一个版本。
测试
如果您正在为 django-smuggler 贡献,我们建议设置一个 virtualenv 并运行
pip install -r test-requirements.txt
然后您可以使用以下命令运行测试
make tests
在提交拉取请求之前,请通过运行以下命令测试我们的支持的 Python 和 Django 版本
tox
要查看是否需要添加测试,我们使用 coverage。您可以使用以下命令生成覆盖率报告
make coverage
要检查您的代码是否遵循风格指南,您可以运行
make lint
复制条件
Django Smuggler 是免费软件;您可以在自由软件基金会发布的GNU 较小通用公共许可证的条款下重新分发和/或修改它;许可证的第 3 版,或者(根据您的选择)任何较新版本。
Django Smuggler 的分发是希望它将是有用的,但没有任何保证;甚至没有关于其商售性或适用于特定目的的暗示性保证。有关更多信息,请参阅 GNU 较小通用公共许可证。
您应该已经收到一份 GNU 较小通用公共许可证的副本,与该程序一起;请参阅 COPYING.LESSER 文件。如果没有,请参阅https://gnu.ac.cn/licenses/。
项目详情
django-smuggler-1.0.4.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e53b02bdc48c94012950d5fa4e4b30bc4259e62fc986d22b9d571de1a45dcc80 |
|
MD5 | b8f3ef33d68d8e5c618167df7aafab9e |
|
BLAKE2b-256 | 59d83601b5fa35b3710af0af6124e71b78f49b85936e8111864013879f9f4d62 |
django_smuggler-1.0.4-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 49db0724d8b8ffb84e93581f12d363d4113f1b9ef07c74c1cdd63f8752397b8c |
|
MD5 | caeeb5e7223faa31ecf9c35bb8c65a24 |
|
BLAKE2b-256 | e2a1deb5b0189df0cd6138d0c36356b2f2909e87ee61850bc8142e5486075a53 |