"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Construyendo una interfaz usando solo Python

Construyendo una interfaz usando solo Python

Publicado el 2024-11-05
Navegar:327

El desarrollo de frontend puede ser una tarea desalentadora, incluso de pesadilla, para los desarrolladores centrados en backend. Al principio de mi carrera, las líneas entre frontend y backend eran borrosas y se esperaba que todos manejaran ambos. CSS, en particular, fue una lucha constante; parecía una misión imposible.

Aunque disfruto del trabajo frontend, CSS sigue siendo un desafío complejo para mí, especialmente porque lo aprendí mediante prueba y error. El meme de Peter Griffin luchando por abrir las persianas captura perfectamente mi experiencia al aprender CSS.
Building a frontend using only Python

Pero hoy todo cambia. Herramientas como Streamlit han revolucionado el juego para desarrolladores como yo, que preferimos la comodidad de la pantalla negra de un terminal. Atrás quedaron los días de luchar con líneas de código que parecían mensajes crípticos de extraterrestres (¡mirándote, CSS!).
Como siempre dice el doctor Károly Zsolnai-Fehér de Two Minute Papers: "¡Qué época para estar vivo!"
Con Streamlit, puedes crear una aplicación web completa usando solo código Python.
¿Quieres verlo en acción? Abróchate el cinturón, porque estoy a punto de compartir mi intento de crear la interfaz para SQLZilla usando esta increíble herramienta.

Para instalarlo, simplemente abre tu terminal y lanza este hechizo:

pip install streamlit

(O puede agregarlo a su archivo require.txt).

Cree un archivo, app.py y agregue este fragmento de código para mostrar un título "SQLZilla":

import streamlit as st

st.title("SQLZilla")

¡Dirigir las cosas!

Abre tu terminal nuevamente y escribe este comando para activar tu creación:

streamlit run app.py

¡Voilá! Tu aplicación Streamlit debería aparecer en tu navegador web, mostrando con orgullo el título "SQLZilla".

Agregue una imagen usando el método de imagen, para centralizarla solo creo 3 columnas y las agrego en el centro (qué vergüenza)

   st.title("SQLZilla")

   left_co, cent_co, last_co = st.columns(3)
   with cent_co:
       st.image("small_logo.png", use_column_width=True)

Para administrar configuraciones y consultar resultados, puede utilizar el estado de sesión. Así es como puede guardar valores de configuración y almacenar resultados de consultas:

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

Para conectar SQLZilla a una base de datos InterSystems IRIS, puede utilizar SQLAlchemy. Primero, instale SQLAlchemy con:

pip install sqlalchemy

Luego, configura la conexión en tu archivo 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

Una vez que te hayas conectado a la base de datos, puedes usar Pandas y Streamlit para mostrar los resultados de tus consultas. A continuación se muestra un ejemplo de cómo mostrar un DataFrame en su aplicación Streamlit:

if 'query' in st.session_state:
    query = st.session_state.query
    df = run_query(query)
    st.dataframe(df)

Para que tu aplicación sea más interactiva, puedes usar st.rerun() para actualizar la aplicación cada vez que cambie la consulta:

if 'query' in st.session_state and st.button('Run Query'):
    df = run_query(st.session_state.query)
    st.dataframe(df)
    st.rerun()

Puedes encontrar varios componentes Streamlit para usar. En SQLZilla, agregué una versión del editor de código ACE llamada 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']

Dado que el asistente SQLZilla está escrito en Python, simplemente llamé a la clase:

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

¡Felicidades! Has creado tu propio SQLZilla. Continúe explorando Streamlit y mejore su aplicación con más funciones. ¡Y si te gusta SQLZilla, vota por este increíble asistente que convierte texto en consultas!

Declaración de liberación Este artículo se reproduce en: https://dev.to/intersystems/building-a-frontend-using-only-python-2ndn?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3