支持Jinja2模板的A/B测试

jinja-ab的Python项目详细描述


Build status

这是Jinja的A/B测试扩展。它允许你编码 在模板中进行实验并呈现由 AB_EXPERIMENT环境变量。“控制”是默认值 如果未指定AB_EXPERIMENT,则为实验名称!

要安装:

pip install jinja-ab

在代码中启用如下扩展:

import os
import jinja_ab

env = Environment(
        loader=FilesystemLoader(),
        extensions=[jinja_ab.JinjaAbExperimentExtension],
    )

os.environ['AB_EXPERIMENT'] = 'v1'
template = env.get_template('index.html')
return template.render(context)

模板语法为:

{% experiment control %}This is the control{% endexperiment %}
{% experiment v1 %}This is version 1{% endexperiment %}

还支持其他语法:

{% ab control %}This is the control{% endab %}
{% ab v1 %}This is version 1{% endab %}

您还可以将这两个标记混合在一个模板中:

{% experiment control %}This is the control{% endexperiment %}
{% ab v1 %}This is version 1{% endab %}

也支持单引号和双引号!

注意:此扩展处理基于模板字符串的呈现 关于AB_EXPERIMENT的值。这取决于你或者你的基于Jinja2的工具 决定如何处理结果。在Mr. Senko处 我们将此扩展用作 pelican-ab插件。

贡献

源代码和问题跟踪程序位于https://github.com/MrSenko/jinja-ab

商业支持

Mr. Senko为开源提供商业支持 图书馆,如果你需要的话!

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

推荐PyPI第三方库


热门话题
java log4j找不到log4jtest。房产?   我在java线程“awteventque1”中获得异常。lang.NullPointerException   java为什么在使用完整路径从文件系统读取文件时出错?   java如何迭代所有注册表项?   java中的安卓 Opencv SVM未正确训练   多线程Java ThreadPoolExecutor关闭特定线程?   如何使用Java NIO CreateDirectory方法设置目录所有者组?   java NatTable混合了固定宽度的列和可调整大小的填充剩余空间   java如何删除特定网络,即使该网络是由安卓上的其他设备创建的?   java Guava toJavaUtil()不存在   java对许多常量使用枚举是有效的memorywise?   java是否可以使用坐标定位JButton?   从WSDL生成java代码导致异常   java如何在安卓中导出javadoc   爬行JAX中的java NoClassDefFoundError错误   java为片段中的文本视图设置区域设置   发送最后一条消息后发生Java RMI RemoteException