Python quick start
Use Fauna’s Python driver to query e-commerce demo data in a Python app. The driver requires Python 3.9 or later.
-
Create a database with demo data
Log in to the Fauna Dashboard, and create a database with the following configuration:
-
Region group: Choose your preferred region group, which determines where your data resides.
-
Use demo data: Enabled.
-
Enable backups: Disabled.
Leave the other options as is.
-
-
Create an authentication secret
Fauna supports several types of authentication secrets. Create a key, which is a type of secret, with the built-in
server-readonly
role:-
In the Dashboard’s Explorer page, select your demo database.
-
In the database’s Keys tab, click Create Key.
-
Choose a Role of server (read-only).
-
Click Save.
-
Copy the Key Secret.
-
-
Set the FAUNA_SECRET environment variable
Set the
FAUNA_SECRET
environment variable to your key’s secret. Fauna’s client drivers can access the secret from this variable.export FAUNA_SECRET=<KEY_SECRET>
-
Install the Python driver
Create a new directory for your app and install the Python driver:
mkdir app cd app pip install fauna
-
Create a basic app
In the
app
directory, create anapp.py
file and add the following code:from fauna import fql from fauna.client import Client from fauna.encoding import QuerySuccess from fauna.errors import FaunaException # Initialize the client to connect to Fauna # using the `FAUNA_SECRET` environment variable. client = Client() try: # Compose a query using an FQL template string. # The query calls the `Product` collection's # `sortedByPriceLowToHigh()` index. It projects the `name`, # `description`, and `price` fields covered by the index. query = fql( """ Product.sortedByPriceLowToHigh() { name, description, price }""" ) # Run the query. pages = client.paginate(query) # Iterate through the results. for products in pages: for product in products: print(product) except FaunaException as e: print(e) finally: client.close()
-
Run the app
Run the script from the
app
directory. The script prints a list of e-commerce products from the demo data in the terminal.python app.py