对于专注于后端的开发人员来说,前端开发可能是一项艰巨的、甚至是噩梦般的任务。在我职业生涯的早期,前端和后端之间的界限是模糊的,每个人都被期望能够处理这两者。 CSS,尤其是,是一场持续不断的斗争;这感觉像是一个不可能完成的任务。
虽然我喜欢前端工作,但 CSS 对我来说仍然是一个复杂的挑战,特别是因为我是通过反复试验才学会它的。 Peter Griffin 努力打开百叶窗的表情包完美地捕捉到了我学习 CSS 的经历。
但是今天,一切都变了。像 Streamlit 这样的工具已经为像我这样喜欢舒适的终端黑屏的开发者带来了彻底的游戏变革。与看起来像是来自外星人的神秘消息的代码行搏斗的日子已经一去不复返了(看着你,CSS!)。
正如《两分钟论文》中的卡罗利·兹索尔奈-费赫博士经常说的那样:“活着真是太美好了!”
借助 Streamlit,您可以仅使用 Python 代码构建整个 Web 应用程序。
想看看它的实际效果吗?系好安全带,因为我即将分享我使用这个很棒的工具为 SQLZilla 创建前端的尝试。
要安装它,只需打开终端并施放这个咒语:
pip install streamlit
(或者您可以将其添加到您的requirements.txt文件中。)
创建文件 app.py 并添加以下代码片段以显示“SQLZilla”标题:
import streamlit as st st.title("SQLZilla")
主持演出!
再次打开终端并输入以下命令来激活您的创建:
streamlit run app.py
瞧!您的 Streamlit 应用程序应该出现在您的 Web 浏览器中,并自豪地显示标题“SQLZilla”。
使用图像方法添加图像,为了将其集中,我只需创建 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 显示查询结果。以下是如何在 Streamlit 应用程序中显示 DataFrame 的示例:
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 中,我添加了一个名为 Streamlit-code-editor 的 ACE 代码编辑器版本:
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,请投票给这个将文本转换为查询的令人难以置信的助手!
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3