跳转到主要内容

匿名敏感数据的命令。

项目描述

Django-Hattori

pypi

匿名敏感数据的命令。此应用帮助您匿名化用于Django项目开发的数据库中的数据。

此应用基于Django-Database-Anonymizer,使用Faker来匿名化值。

安装

使用pip安装

pip install django-hattori

然后将其添加到您的INSTALLED_APPS中。

INSTALLED_APPS = [
    ...
    'hattori',
]

重要

您只能在PRE或开发环境中运行匿名化过程。默认情况下,为了避免问题,匿名化被禁用。

要启用,您必须在设置中添加ANONYMIZE_ENABLED=True

使用方法

如何执行命令

./manage.py anonymize_db

可能的参数

  • -a, --app:定义要匿名化的应用。将运行此应用中的所有匿名化器。例如,anonymize_db -a shop
  • -m, --models:您要匿名化的模型列表。例如,anonymize_db -m Customer,Product
  • -b, --batch-size:在实例的批量更新中使用的批量大小。取决于数据库服务器,默认使用500。

编写匿名化器

为了使用管理命令,我们需要定义匿名化器

  • 在指定的django-app中创建一个名为anonymizers.py的模块
  • 匿名化器是一个从BaseAnonymizer继承的简单类
  • 每个匿名化器类将表示一个模型
  • 匿名化器有以下成员
    • model:(必需) 此匿名化器的模型类
    • attributes:(必需) 确定要替换的字段的元组列表。元组的第一个值是字段名,第二个值是替换者
    • get_query_set():(可选) 定义您的QuerySet
  • 替换者是类型为strcallable
  • 可调用的替换者是Faker实例或自定义替换者。
  • 所有 Faker 方法均可用。更多信息请参阅官方文档 Faker!

示例

from hattori.base import BaseAnonymizer, faker
from shop.models import Customer

class CustomerAnonymizer(BaseAnonymizer):
    model = Customer

    attributes = [
        ('card_number', faker.credit_card_number),
        ('first_name', faker.first_name),
        ('last_name', faker.last_name),
        ('phone', faker.phone_number),
        ('email', faker.email),
        ('city', faker.city),
        ('comment', faker.text),
        ('description', 'fix string'),
        ('code', faker.pystr),
    ]

    def get_query_set(self):
        return Customer.objects.filter(age__gt=18)

通过参数扩展现有替换器

使用 lambda 函数通过参数扩展某些预定义的替换器,例如在 faker.pystr 中使用 min_charsmax_chars

('code', lambda **kwargs: faker.pystr(min_chars=250, max_chars=250, **kwargs)),

重要:不要忘记 **kwargs

项目详情


下载文件

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

源代码分发

django-hattori-0.2.1.tar.gz (6.7 kB 查看哈希值)

上传时间 源代码

构建分发

django_hattori-0.2.1-py2.py3-none-any.whl (8.1 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面