"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Construire une interface en utilisant uniquement Python

Construire une interface en utilisant uniquement Python

Publié le 2024-11-05
Parcourir:373

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.
Building a frontend using only Python

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 !

Déclaration de sortie Cet article est reproduit sur : https://dev.to/intersystems/building-a-frontend-using-only-python-2ndn?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

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