首頁 >後端開發 >Python教學 >僅使用 Python 建構前端

僅使用 Python 建構前端

WBOY
WBOY原創
2024-08-29 06:34:02433瀏覽

對於專注於後端的開發人員來說,前端開發可能是一項艱鉅的、甚至是惡夢般的任務。在我職業生涯的早期,前端和後端之間的界線是模糊的,每個人都被期望能夠處理這兩者。 CSS,尤其是,是一場持續不斷的鬥爭;這感覺就像是一個不可能的任務。

雖然我喜歡前端工作,但 CSS 對我來說仍然是一個複雜的挑戰,特別是因為我是透過反覆試驗才學會它的。 Peter Griffin 努力打開百葉窗的表情包完美地體現了我學習 CSS 的經歷。
Building a frontend using only Python

但今天,一切都改變了。像 Streamlit 這樣的工具已經為像我這樣喜歡舒適的終端黑屏的開發者帶來了徹底的遊戲變革。與看起來像是來自外星人的神秘消息的代碼行搏鬥的日子已經一去不復返了(看著你,CSS!)。
正如《兩分鐘論文》中的 Károly Zsolnai-Fehér 博士常說的那樣:「活著真是太美好了!」
借助 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,請投票給這個將文字轉換為查詢的令人難以置信的助手!

以上是僅使用 Python 建構前端的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn