«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Создание интерфейса с использованием только Python

Создание интерфейса с использованием только Python

Опубликовано 5 ноября 2024 г.
Просматривать:795

Разработка внешнего интерфейса может оказаться сложной и даже кошмарной задачей для разработчиков, ориентированных на серверную часть. В начале моей карьеры границы между фронтендом и бэкендом были размыты, и каждый должен был заниматься и тем, и другим. CSS, в частности, представлял собой постоянную борьбу; это казалось невыполнимой миссией.

Хотя мне нравится работать с интерфейсом, CSS остается для меня сложной задачей, тем более что я изучал его методом проб и ошибок. Мем с Питером Гриффином, пытающимся открыть жалюзи, прекрасно отражает мой опыт изучения CSS.
Building a frontend using only Python

Но сегодня все меняется. Такие инструменты, как Streamlit, произвели революцию в игре для таких разработчиков, как я, которые предпочитают комфорт черного экрана терминала. Прошли времена борьбы со строками кода, которые выглядели как загадочные сообщения от инопланетян (глядя на тебя, CSS!).
Как всегда говорит доктор Карой Жолнаи-Фехер из «Двухминутных газет»: «Какое время быть живым!»
С помощью Streamlit вы можете создать целое веб-приложение, используя только код Python.
Хотите увидеть это в действии? Пристегнитесь, потому что я собираюсь поделиться своей попыткой создания интерфейса для SQLZilla с помощью этого замечательного инструмента.

Чтобы установить его, просто откройте терминал и произнесите это заклинание:

pip install streamlit

(Или вы можете добавить его в файл require.txt.)

Создайте файл app.py и добавьте этот фрагмент кода для отображения заголовка «SQLZilla»:

import streamlit as st

st.title("SQLZilla")

Управляйте шоу!

Снова откройте терминал и введите эту команду, чтобы активировать свое творение:

streamlit run app.py

Вуаля! Ваше приложение Streamlit должно появиться в вашем веб-браузере с гордым названием «SQLZilla».

Добавьте изображение, используя метод image. Чтобы централизовать его, я просто создаю 3 столбца и добавляю их по центру (стыдно мне)

   st.title("SQLZilla")

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

Для управления конфигурациями и результатами запросов вы можете использовать состояние сеанса. Вот как вы можете сохранить значения конфигурации и результаты запроса:

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

Чтобы подключить SQLZilla к базе данных InterSystems IRIS, вы можете использовать SQLAlchemy. Сначала установите SQLAlchemy с помощью:

pip install sqlalchemy

Затем настройте соединение в файле 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

После подключения к базе данных вы можете использовать Pandas и Streamlit для отображения результатов ваших запросов. Вот пример того, как отобразить DataFrame в вашем приложении Streamlit:

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

Чтобы сделать ваше приложение более интерактивным, вы можете использовать st.rerun() для обновления приложения при каждом изменении запроса:

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

Вы можете найти различные компоненты Streamlit для использования. В SQLZilla я добавил версию редактора кода ACE под названием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']

Поскольку помощник SQLZilla написан на Python, я просто вызвал класс:

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

Поздравляем! Вы создали свою собственную SQLZilla. Продолжайте изучать Streamlit и расширяйте возможности своего приложения. А если вам нравится SQLZilla, проголосуйте за этого невероятного помощника, преобразующего текст в запросы!

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/intersystems/building-a-frontend-using-only-python-2ndn?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить их.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3