# Flask

{% hint style="success" %}
This is the official documentation of the `forestadmin-agent-django` and `forestadmin-agent-flask` Python agents.
{% endhint %}

### Add dependency forestadmin-agent-flask and forestadmin-datasource-sqlalchemy to your flask app

```bash
pip install forestadmin-agent-flask forestadmin-datasource-sqlalchemy
```

In your `app.py`, create a new agent with your settings, setup your SQLAlchemy data source, and register it to your Flask app:

```python
import os

from flask_cors import CORS
from forestadmin.datasource_sqlalchemy.datasource import SqlAlchemyDatasource
from forestadmin.flask_agent.agent import build_agent

# create your flask app
app = Flask(__name__)

# define settings for forest agent in flask config
app.config["FOREST_ENV_SECRET"] = os.environ.get("FOREST_ENV_SECRET")
app.config["FOREST_AUTH_SECRET"] = os.environ.get("FOREST_AUTH_SECRET")

# create the agent
agent = create_agent(app)

# setting up the CORS
CORS(
    app,
    resources={
        r"/forest/*": {"origins": r".*\.forestadmin\.com.*"},
        # if you are using the 'prefix' options don't forget to adapt the path
        # rf"{agent.options['prefix']}/forest/*": {
        #     "origins": r".*\.forestadmin\.com.*"
        # },
    },
    supports_credentials=True,
)

# register your data source to the agent
# if using basic sqlalchemy declarative_base
agent.add_datasource(SqlAlchemyDatasource(Base, db_uri='sqlite:///path/to/db.sql'))
# elif using flask_sqlalchemy package (https://pypi.org/project/Flask-SQLAlchemy/)
with app.app_context():
    agent.add_datasource(SqlAlchemyDatasource(db))
# endif

# finally start the agent
agent.start()
```

Running

```bash
FOREST_ENV_SECRET="<This is provided during the onboarding steps>" FOREST_AUTH_SECRET="<This is provided during the onboarding steps>" flask run
```

should be enough to be redirected to the "rate-install" page.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.forestadmin.com/developer-guide-agents-python/getting-started/quick-start/quick-start-flask.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
