未提供项目说明

django-birdbath的Python项目详细描述


Django水盆

一个简单的工具,可以很好地清洗Django数据库数据。匿名化用户数据,删除开发环境中不需要的东西,或者其他你需要做的事情。在

使用

  1. {{cd2>添加到
  2. 在设置文件中根据需要设置BIRDBATH_CHECKS和{}(请参阅下面的配置)。在
  3. 运行./manage.py run_birdbath以触发处理器。在

重要!默认处理器是破坏性的,将匿名用户电子邮件和密码。不要在生产中运行!在

默认情况下,Birdbath启用一个Django system check,如果当前环境中没有触发Birdbath清理,它将触发一个错误。在

这是为了给开发人员一个提示,他们需要在运行runserver之类的命令之前匿名/清理数据。在

建议的方法是在生产环境中使用环境变量将BIRDBATH_REQUIRED设置为False。在

使用--skip-checks上的--skip-checks标志可以跳过检查。在

配置

常用设置

  • BIRDBATH_REQUIRED(默认:True)-如果为True,则Django系统检查将在未执行匿名化时抛出错误。在生产环境中设置为False。在
  • BIRDBATH_CHECKS-要在处理器之前执行的“Check”类的路径列表。如果其中任何一个返回False,处理器将拒绝运行。在
  • BIRDBATH_PROCESSORS-要执行以清除数据的“处理器”类的路径列表。在

处理器特定设置

  • BIRDBATH_USER_ANONYMISER_EXCLUDE_EMAIL_RE(默认:example\.com$)-一种正则表达式模式,用于在匿名时排除与特定电子邮件地址匹配的用户。在
  • BIRDBATH_USER_ANONYMISER_EXCLUDE_SUPERUSERS(默认:True)-如果为True,则将从匿名中排除is_superuser设置为True的用户。在

实现你自己的

您的站点可能会有一些自己的检查/处理器需求。在

检查

自定义检查可以通过子类化birdbath.checks.BaseCheck并实现check方法来实现:

from birdbath.checks import BaseCheck

class IsDirtyCheck(BaseCheck):
    def check(self):
        return os.environ.get("IS_DIRTY")

如果检查应该继续,check方法应该返回True,或者{}来停止检查并阻止处理器运行。在

处理器

自定义处理器可以通过子类化birdbath.processors.BaseProcessor并实现run方法来实现:

^{pr2}$

检查/处理器参考

检查

  • checks.contrib.heroku.HerokuNotProductionCheck-如果没有设置HEROKU_APP_NAME环境变量,或者它设置并包含单词production,则失败。在
  • checks.contrib.heroku.HerokuAnonymisationAllowedCheck-如果ALLOWS_ANONYMISATION环境变量与应用程序的名称不匹配,则失败。在

处理器

  • processors.users.UserEmailAnonymiser-用随机地址替换用户电子邮件地址
  • processors.users.UserPasswordAnonymiser-用随机uuid替换用户密码
  • processors.contrib.wagtail.SearchQueryCleaner-删除完整的搜索查询历史记录
  • processors.contrib.wagtail.FormSubmissionCleaner-删除所有表单提交

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么Scanner类不像println方法那样使用重载的概念   java Jersey:接受枚举请求参数的整数   java如何在EclipseKepler中安装Hibernate?   java在修补servlet中的jsp文件时获取NullPointerException   java“addScript”在HSQL中是否有最大记录计数?   java Maven使用@Ignore运行单元测试   java是args[0],args[1]变量吗?   java Swing JScrollPane溢出   java与Facebook Graph Api更新机制的集成,无需实时更新   java矩形在多边形内?   java Netty句柄AnnotatedConnectionException   java Springboot JPA不自动生成表   java如何在后台或睡眠模式下采样加速度计数据   java为什么RocketMQ DefaultMQProcuderImpl在成功发送消息的情况下调用updateFaultItem   java在对象数组中计算最小值,然后在另一个计算中使用它   java重缩放JFrame内容   如何使用Netbeans在java中输入泰米尔语(swing组件)?