跳转到主要内容

一个简单的Django模块,用于在非生产环境中安全使用对生产数据的匿名化。

项目描述

django-anonymous

CI codecov License: GPL v3 PyPI version

一个简单的Django模块,用于在非生产环境中安全使用对生产数据的匿名化。

安装

pip install django-anonymous

使用

在你的应用中创建一个名为 anon.py 的文件

from django_anonymous import Anonymizer, Faker, register
from .model import YourModel


@register(YourModel)
class YourModelAnonymizer(Anonymizer):
    
    # You can give any callable, Faker is a small wrapper around the `faker` library. 
    email = Faker("email", unique=True)
    
    # You can also use any static value
    first_name = "Anon"

运行匿名化程序

python manage.py anonymize

自定义QuerySet

你可以设置一个自定义的QuerySet来过滤掉一些对象

from django_anonymous import Anonymizer, Faker, register
from .model import YourModel


@register(YourModel)
class YourModelAnonymizer(Anonymizer):
    email = Faker("email", unique=True)

    def get_queryset(self):
        return super().get_queryset().filter(is_staff=True)

Faker种子

默认情况下,它将使用对象ID作为种子,以生成每次运行时相同的数据。你可以通过覆盖 get_object_seed 并返回假值来禁用此功能。

from django_anonymous import Anonymizer, Faker, register
from .model import YourModel


@register(YourModel)
class YourModelAnonymizer(Anonymizer):
    email = Faker("email", unique=True)

    def get_object_seed(self, obj):
        return None

匿名化器设置

对于每个匿名化器,你可以设置选择块大小和更新批处理大小。默认情况下,它不会匿名化没有值的字段。

from django_anonymous import Anonymizer, Faker, register
from .model import YourModel


@register(YourModel)
class YourModelAnonymizer(Anonymizer):
    SELECT_CHUNK_SIZE = 100
    UPDATE_BATCH_SIZE = 25
    ANONYMIZE_EMPTY_FIELD = False
    
    email = Faker("email", unique=True)

灵感来源于

项目详情


下载文件

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

源分布

django-anonymous-0.4.0.tar.gz (17.2 kB 查看哈希)

上传于 来源

构建分发

django_anonymous-0.4.0-py3-none-any.whl (18.0 kB 查看哈希值)

上传于 Python 3

由以下支持