Skip to main content

Support A/B testing for Jinja2 templates

Project description

Build status

This is an A/B testing extension for Jinja. It allows you to encode experiments in your templates and renders the experiment selected by the AB_EXPERIMENT environment variable. ‘control’ is the default experiment name if AB_EXPERIMENT is not specified!

To install:

pip install jinja-ab

Enable the extension in your code like this:

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)

The template syntax is:

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

Alternative syntax is also supported:

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

You can also mix the two tags in a single template:

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

Single and double quoted names are also supported!

NOTE: this extension deals with rendering the template string based on the value of AB_EXPERIMENT. It is up to you or your Jinja2 based tools to decide what to do with the result. At Mr. Senko we use this extension as part of the pelican-ab plugin.

Contributing

Source code and issue tracker are at https://github.com/MrSenko/jinja-ab

Commercial support

Mr. Senko provides commercial support for open source libraries, should you need it!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jinja-ab-0.3.0.tar.gz (3.4 kB view details)

Uploaded Source

File details

Details for the file jinja-ab-0.3.0.tar.gz.

File metadata

  • Download URL: jinja-ab-0.3.0.tar.gz
  • Upload date:
  • Size: 3.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for jinja-ab-0.3.0.tar.gz
Algorithm Hash digest
SHA256 cd8d8c2c6cbaccd79b8dcd02a0d11496edb9d039a156ba69f5d6609e10c60a87
MD5 37c5b22089c5533d1f979d128d58a8e5
BLAKE2b-256 cf87495edffe9291fab29b53aab0c5540ce0ff3dda744f9f73e6c53e2d6cde7f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page