Welcome to the quickstart guide for Optimizely's Python SDK. The instructions below will help you implement Optimizely Rollouts and launch your first feature flag.
This guide will help you:
- Install the SDK
- Instantiate Optimizely when your app starts
- Create a feature flag
- Roll out a feature
You can also follow along in this 5-minute video:
Click here to see the sample application shown in this video.
The Python SDK is distributed through PyPi. To install, use
pip install optimizely-sdk.
The full source code is at https://github.com/optimizely/python-sdk.
The datafile stores the configuration for all your features and rollouts. Whenever you make a change in Optimizely, the datafile is automatically updated so you can pull configuration changes down into your application.
The sample below shows how you can get a local copy of the datafile from our server and instantiate a client with it. Later, you'll want to adjust this code to handle datafile updates.
from optimizely import optimizely import requests url = "https://cdn.optimizely.com/datafiles/5fC4teUtJuuqYdDvH8h486.json" datafile = requests.get(url).text optimizely_client = optimizely.Optimizely(datafile)
If you see <Your_SDK_Key> in the sample above, here's where to find your SDK Key:
- Navigate to Settings > Datafile.
- Copy the SDK Key / Primary Key.
Choose a feature in your app to turn on and off with a feature flag. For your first flag, consider starting with a link or visual element that's simple to change, show, or hide based on a Boolean.
To set up your first feature flag, navigate to Features > Create New Feature.
Here's how to set it up:
Click to enlarge.
After saving, use the Boolean Is Feature Enabled function to show, hide, or change some visual part of your application. You should see a value of
false from this function because you haven't rolled out the feature yet. You'll turn it on in the next step.
from optimizely import optimizely optimizely_client = optimizely.Optimizely(datafile) # Evaluate a feature flag enabled = optimizely_client.is_feature_enabled('new_feature', 'user123')
The UserID enables you to create consistent experiences for a user across multiple visits, but you don't need it for this quickstart. Make the userID any non-null string for now.
Navigate back to Features and select your feature flag.
You'll return to this modal whenever you want to update this feature flag. For example, roll out your feature incrementally by moving the slider up by 10% per day or show it to a certain group of users. Move it to 100% for a big reveal, or 0% if issues arise in production. No code deployment necessary.
Here's a basic approach to QA for your feature flag:
Show the feature to yourself
- Navigate to your feature.
- Toggle it ON and move the slider to 100% traffic. Click Save.
- Confirm that you see the feature.
Hide the feature from yourself
- Navigate back to the feature.
- Toggle it OFF. Click Save.
- Confirm that you no longer see the feature.
When you're ready, go ahead and roll out your feature in production. Come back and adjust its configuration any time, without deploying code.