Rumah >pembangunan bahagian belakang >Tutorial Python >Membina bahagian hadapan menggunakan Python sahaja

Membina bahagian hadapan menggunakan Python sahaja

WBOY
WBOYasal
2024-08-29 06:34:02435semak imbas

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.
Building a frontend using only Python

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn