Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 10088
Site web

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

 

Pied de page des forums

Copyright Association GeoRezo