Maison > développement back-end > Tutoriel Python > Construire une interface en utilisant uniquement Python

Construire une interface en utilisant uniquement Python

WBOY
Libérer: 2024-08-29 06:34:02
original
433 Les gens l'ont consulté

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
Copier après la connexion

(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")
Copier après la connexion

Courez le spectacle !

Ouvrez à nouveau votre terminal et tapez cette commande pour activer votre création :

streamlit run app.py
Copier après la connexion

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 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)
Copier après la connexion

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
Copier après la connexion

Pour connecter SQLZilla à une base de données InterSystems IRIS, vous pouvez utiliser SQLAlchemy. Tout d’abord, installez SQLAlchemy avec :

pip install sqlalchemy
Copier après la connexion

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
Copier après la connexion

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)
Copier après la connexion

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()
Copier après la connexion

Vous pouvez trouver différents 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']
Copier après la connexion

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
Copier après la connexion

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 !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal