Pembangunan bahagian hadapan boleh menjadi tugas yang menakutkan, malah ngeri, untuk pembangun yang memfokuskan bahagian belakang. Pada awal kerjaya saya, garis antara bahagian hadapan dan bahagian belakang telah kabur, dan semua orang dijangka mengendalikan kedua-duanya. CSS, khususnya, adalah perjuangan yang berterusan; rasanya seperti satu misi yang mustahil.
Walaupun saya menikmati kerja bahagian hadapan, CSS kekal sebagai cabaran yang kompleks untuk saya, terutamanya sejak saya mempelajarinya melalui percubaan dan kesilapan. Meme Peter Griffin yang bergelut untuk membuka tirai dengan sempurna menangkap pengalaman saya mempelajari CSS.
Tetapi hari ini, semuanya berubah. Alat seperti Streamlit telah merevolusikan permainan untuk pembangun seperti saya, yang lebih suka keselesaan skrin hitam terminal. Sudah berlalu zaman bergelut dengan baris kod yang kelihatan seperti mesej samar daripada makhluk asing (melihat anda, CSS!).
Seperti yang selalu dikatakan oleh Doktor Károly Zsolnai-Fehér dari Two Minute Papers, "Alangkah indahnya masa untuk hidup!"
Dengan Streamlit, anda boleh membina keseluruhan aplikasi web menggunakan kod Python sahaja.
Mahu melihatnya beraksi? Bertenang, kerana saya akan berkongsi percubaan saya untuk mencipta bahagian hadapan untuk SQLZilla menggunakan alat hebat ini.
Untuk memasangnya, cuma buka terminal anda dan hantar mantera ini:
pip install streamlit
(Atau anda boleh menambahkannya pada fail keperluan.txt anda.)
Buat fail, app.py dan tambahkan coretan kod ini untuk memaparkan tajuk "SQLZilla":
import streamlit as st st.title("SQLZilla")
Jalankan Rancangan!
Buka terminal anda sekali lagi dan taip arahan ini untuk mengaktifkan ciptaan anda:
streamlit run app.py
Vila! Apl Streamlit anda sepatutnya muncul dalam penyemak imbas web anda, dengan bangganya memaparkan tajuk "SQLZilla."
Tambah imej menggunakan kaedah imej, untuk memusatkannya, saya cuma buat 3 lajur dan tambah pada tengah (malu saya)
st.title("SQLZilla") left_co, cent_co, last_co = st.columns(3) with cent_co: st.image("small_logo.png", use_column_width=True)
Untuk mengurus konfigurasi dan hasil pertanyaan, anda boleh menggunakan keadaan sesi. Begini cara anda boleh menyimpan nilai konfigurasi dan menyimpan hasil pertanyaan:
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
Untuk menyambungkan SQLZilla ke pangkalan data InterSystems IRIS, anda boleh menggunakan SQLAlchemy. Mula-mula, pasang SQLAlchemy dengan:
pip install sqlalchemy
Kemudian, sediakan sambungan dalam fail app.py anda:
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
Setelah anda menyambung ke pangkalan data, anda boleh menggunakan Pandas dan Streamlit untuk memaparkan hasil pertanyaan anda. Berikut ialah contoh cara memaparkan DataFrame dalam apl Streamlit anda:
if 'query' in st.session_state: query = st.session_state.query df = run_query(query) st.dataframe(df)
Untuk menjadikan apl anda lebih interaktif, anda boleh menggunakan st.rerun() untuk memuat semula apl apabila pertanyaan berubah:
if 'query' in st.session_state and st.button('Run Query'): df = run_query(st.session_state.query) st.dataframe(df) st.rerun()
Anda boleh menemui pelbagai komponen Streamlit untuk digunakan. Dalam SQLZilla, saya menambah versi editor kod ACE yang dipanggil 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']
Memandangkan pembantu SQLZilla ditulis dalam Python, saya baru sahaja memanggil kelas:
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
Tahniah! Anda telah membina SQLZilla anda sendiri. Teruskan meneroka Streamlit dan tingkatkan apl anda dengan lebih banyak ciri. Dan jika anda suka SQLZilla, undi untuk pembantu yang luar biasa ini yang menukar teks kepada pertanyaan!
Atas ialah kandungan terperinci Membina bahagian hadapan menggunakan Python sahaja. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!