-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain_app.py
More file actions
78 lines (67 loc) · 2.64 KB
/
main_app.py
File metadata and controls
78 lines (67 loc) · 2.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import streamlit as st
import pandas as pd
import requests
from bs4 import BeautifulSoup
# Fonction pour vérifier les identifiants de l'utilisateur
def check_credentials(username, password):
# Ceci est une vérification simple pour la démonstration. Vous pouvez remplacer cela par une vérification plus sécurisée.
return username == "admin" and password == "12345"
# Fonction pour la page de login
name = "admin"
mp = "12345"
def login_page():
st.title("Page de Connexion")
username = st.text_input("Nom d'utilisateur", name)
password = st.text_input("Mot de passe", mp, type="password")
if st.button("Se connecter"):
if check_credentials(username, password):
st.session_state['authenticated'] = True
st.experimental_rerun()
else:
st.error("Nom d'utilisateur ou mot de passe incorrect")
# Fonction pour la page ETL et de monitoring
def etl_monitoring_page():
st.title("Tableau de Bord ETL et Monitoring")
# Téléchargement de fichier local
uploaded_file = st.file_uploader("Choisir un fichier", type=["csv", "xlsx"])
if uploaded_file is not None:
try:
df = pd.read_csv(uploaded_file)
st.write("Aperçu du fichier téléchargé:")
st.dataframe(df.head())
except Exception as e:
st.error(f"Erreur lors du chargement du fichier: {e}")
# Web scraping
st.subheader("Web Scraping")
url = st.text_input("Entrer l'URL pour le scraping")
if st.button("Scraper"):
if url:
try:
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
st.write("Contenu de la page web:")
st.code(soup.prettify()[:500]) # Affiche une partie du contenu pour éviter un trop long output
except Exception as e:
st.error(f"Erreur lors du scraping: {e}")
# Appel à une API REST
st.subheader("Appel à une API REST")
api_url = st.text_input("Entrer l'URL de l'API")
if st.button("Appeler l'API"):
if api_url:
try:
response = requests.get(api_url)
data = response.json()
st.write("Réponse de l'API:")
st.json(data)
except Exception as e:
st.error(f"Erreur lors de l'appel à l'API: {e}")
# Main application logic
def main():
if 'authenticated' not in st.session_state:
st.session_state['authenticated'] = False
if not st.session_state['authenticated']:
login_page()
else:
etl_monitoring_page()
if __name__ == "__main__":
main()