匿名敏感数据的命令。
项目描述
Django-Hattori
匿名敏感数据的命令。此应用帮助您匿名化用于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
- 替换者是类型为str或callable的
- 可调用的替换者是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_chars
或 max_chars
('code', lambda **kwargs: faker.pystr(min_chars=250, max_chars=250, **kwargs)),
重要:不要忘记 **kwargs!
项目详情
关闭
django-hattori-0.2.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6953d40881317252f19f62c4e7fe8058924b852c7498bc42beb7bc4d268c252c |
|
MD5 | 236407160efec38fd53bbc39803be887 |
|
BLAKE2b-256 | 27f90087cf8ccbd57082082146c719c1afd9a3745e188bf483c225f275d4d197 |
关闭
django_hattori-0.2.1-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e529ed7af8fc34a0169c797c477672b687a205a56f3f5206f90c260acb83b7ac |
|
MD5 | f8267436dc8b4d829e70d268518c64b2 |
|
BLAKE2b-256 | f483705362cb906746bddb6213f6cd67930f5329852f58e89403dc5ad3640be3 |