Le développement frontend peut être une tâche ardue, voire cauchemardesque, pour les développeurs axés sur le backend. Au début de ma carrière, les frontières entre frontend et backend étaient floues et tout le monde devait gérer les deux. CSS, en particulier, était une lutte constante ; c'était comme une mission impossible.
Bien que j'apprécie le travail frontend, CSS reste pour moi un défi complexe, d'autant plus que je l'ai appris par essais et erreurs. Le mème de Peter Griffin qui a du mal à ouvrir les stores capture parfaitement mon expérience d'apprentissage du CSS.
Mais aujourd’hui, tout change. Des outils comme Streamlit ont révolutionné le jeu pour les développeurs comme moi, qui préfèrent le confort de l'écran noir d'un terminal. Il est révolu le temps de lutter avec des lignes de code qui ressemblent à des messages énigmatiques provenant d'extraterrestres (en vous regardant, CSS !).
Comme le dit toujours le docteur Károly Zsolnai-Fehér de Two Minute Papers : « Quel moment pour être en vie ! »
Avec Streamlit, vous pouvez créer une application Web entière en utilisant uniquement du code Python.
Vous voulez le voir en action ? Attachez votre ceinture, car je suis sur le point de partager ma tentative de création de l'interface pour SQLZilla à l'aide de cet outil génial.
Pour l'installer, ouvrez simplement votre terminal et lancez ce sort :
pip install streamlit
(Ou vous pouvez l'ajouter à votre fichier exigences.txt.)
Créez un fichier, app.py et ajoutez cet extrait de code pour afficher un titre "SQLZilla" :
import streamlit as st st.title("SQLZilla")
Courez le spectacle !
Ouvrez à nouveau votre terminal et tapez cette commande pour activer votre création :
streamlit run app.py
Voila ! Votre application Streamlit devrait apparaître dans votre navigateur Web, affichant fièrement le titre « SQLZilla ».
Ajouter une image en utilisant la méthode image, pour la centraliser je crée juste 3 colonnes et l'ajoute au centre (honte à moi)
st.title("SQLZilla") left_co, cent_co, last_co = st.columns(3) with cent_co: st.image("small_logo.png", use_column_width=True)
Pour gérer les configurations et les résultats des requêtes, vous pouvez utiliser l'état de session. Voici comment enregistrer les valeurs de configuration et stocker les résultats des requêtes :
if 'hostname' not in st.session_state: st.session_state.hostname = 'sqlzilla-iris-1' if 'user' not in st.session_state: st.session_state.user = '_system' if 'pwd' not in st.session_state: st.session_state.pwd = 'SYS' # Add other session states as needed
Pour connecter SQLZilla à une base de données InterSystems IRIS, vous pouvez utiliser SQLAlchemy. Tout d’abord, installez SQLAlchemy avec :
pip install sqlalchemy
Ensuite, configurez la connexion dans votre fichier app.py :
from sqlalchemy import create_engine import pandas as pd # Replace with your own connection details engine = create_engine(f"iris://{user}:{password}@{host}:{port}/{namespace}") def run_query(query): with engine.connect() as connection: result = pd.read_sql(query, connection) return result
Une fois connecté à la base de données, vous pouvez utiliser Pandas et Streamlit pour afficher les résultats de vos requêtes. Voici un exemple de la façon d'afficher un DataFrame dans votre application Streamlit :
if 'query' in st.session_state: query = st.session_state.query df = run_query(query) st.dataframe(df)
Pour rendre votre application plus interactive, vous pouvez utiliser st.rerun() pour actualiser l'application chaque fois que la requête change :
if 'query' in st.session_state and st.button('Run Query'): df = run_query(st.session_state.query) st.dataframe(df) st.rerun()
Vous pouvez trouver divers composants Streamlit à utiliser. Dans SQLZilla, j'ai ajouté une version de l'éditeur de code ACE appelée streamlit-code-editor :
from code_editor import code_editor editor_dict = code_editor(st.session_state.code_text, lang="sql", height=[10, 100], shortcuts="vscode") if len(editor_dict['text']) != 0: st.session_state.code_text = editor_dict['text']
L'assistant SQLZilla étant écrit en Python, je viens d'appeler la classe :
from sqlzilla import SQLZilla def assistant_interaction(sqlzilla, prompt): response = sqlzilla.prompt(prompt) st.session_state.chat_history.append({"role": "user", "content": prompt}) st.session_state.chat_history.append({"role": "assistant", "content": response}) if "SELECT" in response.upper(): st.session_state.query = response return response
Félicitations! Vous avez créé votre propre SQLZilla. Continuez à explorer Streamlit et améliorez votre application avec plus de fonctionnalités. Et si vous aimez SQLZilla, votez pour cet incroyable assistant qui convertit le texte en requêtes !
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3