Annonce
Les inscriptions sont ouvertes ! L'association GeoRezo sera présente
#1 Fri 21 August 2026 15:09
- fefe
- Juste Inscrit !
- Date d'inscription: 26 Apr 2026
- Messages: 6
Bibliothèque Python et STREAMLIT
Hello tout le monde,
Je fais une application webmapping de type tableau de bord avec Python et Streamlit.
J'aurais besoin de conseils de la part de data analyst Python à ce sujet.
Je souhaite tout simplement gérer l'accès à ma base de données POSTGIS de manière sécurisée et pour cela j'utilise un fichier .toml avec mes accès.
Cependant, je n'arrive pas à récupérer dans le code de mon app ces valeurs.
Comment faire? Help please!
Hors ligne
#2 Fri 21 August 2026 15:20
Re: Bibliothèque Python et STREAMLIT
Bonjour,
Le moyen le plus propre et sécurisé d'interagir avec un fichier .toml est d'utiliser le système natif st.secrets.
1. Structure de tes fichiers
Ton fichier .toml doit impérativement se trouver dans un dossier caché .streamlit situé à la racine de ton projet :
Plaintext
mon_projet/
├── .streamlit/
│ └── secrets.toml <-- Vos identifiants vont ici
├── app.py
└── .gitignore <-- À NE PAS OUBLIER !
2. Le fichier .streamlit/secrets.toml
Structure tes identifiants PostGIS comme ceci :
Ini, TOML
[postgres]
host = "localhost"
port = 5432
dbname = "ma_base_sig"
user = "mon_utilisateur"
password = "mot_de_passe_securise"
Attention : ajoute immédiatement .streamlit/secrets.toml dans ton fichier .gitignore pour ne jamais envoyer tes clés sur ton dépôt.
3. Récupération dans ton code Streamlit (app.py)
Pour te connecter à PostGIS, tu récupères les valeurs via le dictionnaire st.secrets :
Code:
import streamlit as st
from sqlalchemy import create_engine
# 1. Récupération des accès secrets
db_config = st.secrets["postgres"]
# 2. Création de l'URL de connexion SQLAlchemy
# Format : postgresql://user:password@host:port/dbname
db_url = f"postgresql://{db_config['user']}:{db_config['password']}@{db_config['host']}:{db_config['port']}/{db_config['dbname']}"
@st.cache_resource
def get_engine():
return create_engine(db_url)
engine = get_engine()Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#3 Hier 08:24
- fefe
- Juste Inscrit !
- Date d'inscription: 26 Apr 2026
- Messages: 6
Re: Bibliothèque Python et STREAMLIT
Merci ça fonctionne ! Par contre, du fait de la création de "engine", je ne peux plus utiliser "conn = st.connection("postgresql", type="sql", ttl="10m"
En tout cas, j'arrive à un tableau de bord sympa,réalisé à partir d'une connexion sécurisée avec le fichier secrets.toml à ma base postgis!
Je veux bien des retours sur mon dashboard quand il sera fini, en tout cas, je vous dois une fière chandelle comme disent les jeunes!
Hors ligne


