streamlit¶
streamlit เป็นชุดคำสั่งเสริมสำหรับภาษา Python ที่ใช้แนวคิดเชิงวัตถุสำหรับการสร้างเว็บแอปพลิเคชัน (web applications) โดยไม่ต้องมีความรู้ด้านการพัฒนาเว็บเลย ช่วยให้สามารถสร้างเว็บแอปพลิเคชันที่สามารถโต้ตอบกับผู้ใช้ได้ในเวลาอันสั้น
การแสดงข้อมูล¶
st.write(): ใช้สำหรับแสดงข้อมูลต่าง ๆ บนเว็บแอปพลิเคชัน
st.title(), st.header(), st.subheader(): ใช้สำหรับแสดงข้อความที่เป็นหัวเรื่อง
การแสดงรูปภาพและวิดีโอ¶
st.image(): ใช้สำหรับแสดงรูปภาพ
st.video(): ใช้สำหรับแสดงวิดีโอ
การรับข้อมูลจากผู้ใช้¶
st.button(): สร้างปุ่ม
st.text_input(), st.number_input(), st.date_input(): สร้างช่องป้อนข้อมูลข้อความ, ตัวเลข, และวันที่
st.selectbox(), st.multiselect(): สร้างกล่อง dropdown และ multi-select dropdown
การเขียนโค้ด Markdown:¶
st.markdown(): ใช้สำหรับแสดงข้อความที่ใช้ไฟล์ Markdown
การสร้างกราฟ¶
st.line_chart(), st.bar_chart(), st.area_chart(): ใช้สำหรับสร้างกราฟเส้น, กราฟแท่ง, และกราฟพื้นที่
การเรียกใช้ฟังก์ชันหลังจากการเปลี่ยนแปลง¶
st.button().on_click(): ใช้สำหรับระบุฟังก์ชันที่จะเรียกเมื่อปุ่มถูกคลิก
การจัดหน้าเว็บแอปพลิเคชัน¶
st.sidebar: ใช้สำหรับเพิ่มส่วน sidebar ที่ใช้เก็บวิดเจ็ตหรือข้อมูลเสริม
st.columns(): ใช้สำหรับแบ่งหน้าจอเป็นคอลัมน์
st.tabs(): ใช้สำหรับแบ่งหน้าจอเป็นแทป
st.expander(): ใช้สำหรับขยายพื้นที่แสดงผล
st.container(): ใช้สำหรับจัดกลุ่มแสดงผล
st.empty(): ใช้สำหรับแสดงพื้นที่เปล่า
การใช้ Session State¶
st.session_state: ใช้สำหรับเก็บข้อมูลที่ต้องการให้เก็บไว้ระหว่าง session
การบันทึกข้อมูล:¶
st.cache_data(): ใช้สำหรับบันทึกข้อมูลที่ถูกประมวลผลเพื่อลดเวลาการโหลดข้อมูลใน session ถัดไป
ตัวอย่าง¶
ตัวอย่างที่ 1
import streamlit
print(streamlit.__version__)
ตัวอย่างที่ 2
import streamlit
h = streamlit.header('My Web Site on Diffusion')
s = streamlit.subheader('เว็บไซต์ส่วนตัวของฉานน')
p = streamlit.write('เว็บไซต์นี้แลกมาด้วยหยาดเหงื่อและความอดทน')
banner = streamlit.image('https://picsum.photos/800/250')
b = streamlit.button('click me')
ตัวอย่างที่ 3
import streamlit as st
h = st.header('My Web Site on Diffusion')
s = st.subheader('เว็บไซต์ส่วนตัวของฉานน')
p = st.write('เว็บไซต์นี้แลกมาด้วยหยาดเหงื่อและความอดทน')
#banner = st.image('https://picsum.photos/800/250')
text = st.text_input('prompt: ')
if text:
# text
st.image('https://picsum.photos/400/200')
b = st.button('จะไปต่อหรือ...')
ตัวอย่างที่ 4
import torch
import streamlit as st
from PIL import Image
from diffusers import DiffusionPipeline as DP
h = st.header('Diffusion.AI')
s = st.subheader('เว็บไซต์สำหรับแปลงข้อความเป็นภาพ')
p = st.write('เว็บไซต์นี้แลกมาด้วยหยาดเหงื่อและความอดทน')
text = st.text_input('prompt: ')
if text:
dp = DP.from_pretrained(
"runwayml/stable-diffusion-v1-5",
torch_dtype=torch.float16)
image_data = dp(text).images[0]
image = Image.fromarray(image_data)
image.show()
#st.image('https://picsum.photos/400/200')
b = st.button('จะไปต่อหรือ...')