對於專注於後端的開發人員來說,前端開發可能是一項艱鉅的、甚至是噩夢般的任務。在我職業生涯的早期,前端和後端之間的界線是模糊的,每個人都被期望能夠處理這兩者。 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