Streamlit, rangka kerja yang digunakan secara meluas untuk membina aplikasi Python interaktif, terutamanya untuk visualisasi data, papan pemuka dan tunjuk cara pembelajaran mesin, menonjol bukan sahaja kerana sifat mesra penggunanya tetapi juga untuk keupayaannya untuk mencipta reka letak yang menarik secara visual dan intuitif . Dalam catatan blog ini, kami akan membimbing anda melalui contoh Python yang menunjukkan cara menggunakan elemen reka letak dengan berkesan seperti lajur, bekas, ruang letak dan banyak lagi dalam Streamlit.
Mari pecahkan teknik reka letak yang boleh anda gunakan untuk menjadikan apl anda lebih bersih dan lebih interaktif.
Sebelum melompat ke dalam elemen susun atur, kami mengkonfigurasi halaman menggunakan st.set_page_config(). Kaedah ini membolehkan anda menyesuaikan tajuk halaman, ikon, reka letak dan gelagat bar sisi tepat apabila apl dimuatkan.
st.set_page_config( page_title="Streamlit Layouts Tutorial", page_icon=":art:", layout="wide", initial_sidebar_state="collapsed", )
Di sini, kami memberi halaman tajuk, menetapkan reka letak kepada "lebar" (yang menggunakan lebar penyemak imbas penuh) dan runtuhkan bar sisi pada mulanya untuk penampilan yang lebih bersih.
Salah satu alatan reka letak yang paling berkuasa dalam Streamlit ialah lajur. Ia membolehkan anda memaparkan kandungan sebelah menyebelah, memberikan rupa yang lebih teratur dan menarik secara visual pada apl anda.
st.header("Columns") st.write("Using `st.columns()` to create columns.") # Create two columns col1, col2 = st.columns(2) col1.write("This is column 1") if col1.button("Button in Column 1"): col1.write("Button 1 pressed") col2.write("This is column 2") if col2.button("Button in Column 2"): col2.write("Button 2 pressed")
Dalam coretan ini, kami membuat dua lajur dan meletakkan butang pada setiap lajur. Lajur dibahagikan sama rata dan sebarang interaksi dalam satu lajur tidak menjejaskan yang lain.
Lajur bagus untuk memaparkan maklumat yang berkaitan secara bersebelahan, seperti ringkasan data, carta atau kawalan interaktif.
Seterusnya ialah elemen bekas. Bekas dalam Streamlit membolehkan anda mengumpulkan berbilang elemen bersama-sama, menjadikannya lebih mudah untuk mengurus reka letak yang kompleks.
st.header("Container") st.write("Using `st.container()` to group elements together.") with st.container(): st.write("This is inside a container") st.button("Button inside container") # Nested container with st.container(): st.write("This is a nested container") st.button("Button inside nested container")
Dalam contoh ini, kaedah st.container() membalut berbilang elemen (teks dan butang) bersama-sama. Anda juga boleh meletakkan bekas di dalam satu sama lain untuk membuat reka letak hierarki.
Bekas membantu mengekalkan struktur yang bersih dan berkumpulan, terutamanya apabila berurusan dengan berbilang bahagian kandungan yang digabungkan secara logik.
Ciri hebat Streamlit ialah keupayaannya untuk mengemas kini kandungan secara dinamik. Ini dilakukan menggunakan st.empty(), yang berfungsi sebagai pemegang tempat yang boleh anda kemas kini kemudian.
st.header("Empty") st.write("Using `st.empty()` as a placeholder for updating content.") placeholder = st.empty() # Update the placeholder content dynamically for i in range(5): placeholder.write(f"Updating... {i}") time.sleep(1) placeholder.write("Done!")
Dalam contoh ini, kami menggunakan gelung for untuk mengemas kini pemegang tempat dengan nilai baharu setiap saat. Setelah gelung selesai, kami menggantikan kandungan pemegang tempat dengan "Selesai!"
Pemegang tempat sesuai untuk situasi di mana anda perlu mengemas kini bahagian apl anda secara dinamik tanpa menjalankan semula keseluruhan apl, seperti suapan data langsung atau kemas kini kemajuan.
Bahagian boleh dikembangkan sesuai untuk menyembunyikan tetapan lanjutan atau maklumat tambahan yang anda tidak mahu mengacaukan reka letak utama.
st.set_page_config( page_title="Streamlit Layouts Tutorial", page_icon=":art:", layout="wide", initial_sidebar_state="collapsed", )
Di sini, kami membungkus beberapa kandungan dan butang di dalam pengembang, yang pengguna boleh klik untuk mendedahkan atau menyembunyikan kandungan.
Pengembang membantu memastikan antara muka anda bersih dengan menyembunyikan pilihan yang kurang penting atau lanjutan sambil menjadikannya mudah diakses apabila diperlukan.
Borang strim membolehkan anda mengumpulkan widget input bersama-sama dan menunggu pengguna menyerahkan kesemuanya sekali gus, dan bukannya bertindak balas terhadap setiap input secara individu.
st.header("Columns") st.write("Using `st.columns()` to create columns.") # Create two columns col1, col2 = st.columns(2) col1.write("This is column 1") if col1.button("Button in Column 1"): col1.write("Button 1 pressed") col2.write("This is column 2") if col2.button("Button in Column 2"): col2.write("Button 2 pressed")
Dalam contoh ini, kami menggunakan borang untuk mengumpulkan nama dan umur pengguna, dan hanya selepas mereka mengklik butang serah, Streamlit memproses input.
Borang memastikan bahawa tindakan input dikumpulkan dan diserahkan sebagai satu kelompok, yang sesuai untuk kes seperti pendaftaran pengguna atau penapisan data.
Bar sisi berguna untuk navigasi, tetapan apl atau pilihan tambahan yang tidak mengacaukan antara muka utama.
st.header("Container") st.write("Using `st.container()` to group elements together.") with st.container(): st.write("This is inside a container") st.button("Button inside container") # Nested container with st.container(): st.write("This is a nested container") st.button("Button inside nested container")
Kod ini menambahkan butang pada bar sisi, yang runtuh secara lalai tetapi boleh dikembangkan oleh pengguna.
Bar sisi sesuai untuk kandungan sekunder seperti pautan navigasi, penapis atau tetapan apl yang sentiasa boleh diakses tetapi tidak perlu menggunakan ruang dalam reka letak utama.
Tab ialah cara terbaik untuk menyusun kandungan dalam satu bahagian, membenarkan pengguna bertukar antara paparan berbeza tanpa meninggalkan halaman.
st.header("Empty") st.write("Using `st.empty()` as a placeholder for updating content.") placeholder = st.empty() # Update the placeholder content dynamically for i in range(5): placeholder.write(f"Updating... {i}") time.sleep(1) placeholder.write("Done!")
Dalam contoh ini, kami menggunakan tiga tab untuk memaparkan kandungan berbeza yang berkaitan dengan haiwan. Setiap tab adalah bebas dan mengandungi kandungannya sendiri.
Tab sesuai untuk menyusun kandungan yang berkaitan ke dalam bahagian, seperti paparan data atau kategori maklumat yang berbeza, tanpa memerlukan halaman yang berasingan.
Menguasai elemen reka letak Streamlit memperkasakan anda untuk mencipta aplikasi yang bersih, interaktif dan mesra pengguna. Dengan mahir menggunakan lajur, bekas, ruang letak, pengembang, borang, bar sisi dan tab, anda boleh menyusun kandungan anda dengan berkesan dan meningkatkan pengalaman pengguna secara keseluruhan. Alat ini membolehkan anda mencipta antara muka intuitif yang membimbing pengguna melalui aplikasi anda dengan lancar.
? Dapatkan Kod: GitHub - jamesbmour/blog_tutorials
? Tutorial Streamlit Berkaitan:JustCodeIt
? Sokong kerja saya: Beli Saya Kopi
Atas ialah kandungan terperinci Memperkemaskan Reka Letak Menguasai Bahagian. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!