>  기사  >  백엔드 개발  >  Streamlit을 사용하면 Webapp을 만드는 것이 매우 쉽습니다.

Streamlit을 사용하면 Webapp을 만드는 것이 매우 쉽습니다.

DDD
DDD원래의
2024-10-23 21:25:02934검색

Making a Webapp is so EASY with Streamlit

Streamlit은 일반적인 프론트엔드 지식이 필요하지 않기 때문에 데이터 과학자들 사이에서 인기가 많습니다.

많은 코드를 작성하지 않고도 간단하고 구현하기 쉬운 요소와 위젯을 제공합니다.

ML/AI 프로젝트에서 streamlit을 여러 번 사용했는데 경험이 정말 좋았습니다. 로직 작성에 더 집중할 수 있고, 프론트엔드 부분(디자인, 레이아웃 등)도 스트림라이트로 아주 잘 처리됩니다.

제가 말하는 내용을 이해하실 수 있도록 Streamlit과 Python을 사용하여 데모 웹앱을 만들었습니다.

웹앱

이 웹앱은 이미지 형식을 다른 형식으로 변환하는 데 관한 것입니다. 예를 들어 이미지가 PNG 형식인 경우 JPEG 이미지로 변환할 수 있습니다.

다음 코드는 웹앱의 사용자 인터페이스를 만듭니다.

import streamlit as st
from imgconvrtr import convert_img_format
from PIL import Image

# Webpage setup
st.set_page_config(page_title="Image Convrtr")
st.title("Image Converter")
st.write("Convert your images in one _click_")

# File uploader
uploaded_file = st.file_uploader(
    "Upload an image",
    type=["png", "jpg", "jpeg", "jfif", "bmp"]
)

if uploaded_file is not None:
    # Show the uploaded image
    img = Image.open(uploaded_file)
    st.image(img, caption="Uploaded Image", use_column_width=True)

    # Show original image format
    st.write(f"Original format: {img.format}")

    # Output format selection
    format_options = ["PNG", "JPEG", "JFIF", "BMP"]
    output_format = st.selectbox("Choose output format", format_options)

    # Convert the image
    if img.format != output_format:
        if st.button("Convert"):
            converted_img = convert_img_format(uploaded_file, output_format.lower())
            st.write(f"Image converted to {output_format}")

            # Download button
            st.download_button(
                label=f"Download as {output_format}",
                data=converted_img,
                file_name=f"image.{output_format.lower()}",
                mime=f"image/{output_format.lower()}"
            )
    else:
        st.write("Select a different format... Yo!")

이제 여러분은 이 웹앱의 기능에 대해 이미 간략하게 이해하셨습니다. 이 코드에 사용된 구성 요소에 대해 바로 논의할 수 있습니다.

처음에는 각각 페이지 제목을 설정하고 페이지에 텍스트를 표시하는 데 사용되는 st.title 및 st.write와 같은 페이지 요소를 볼 수 있습니다.

다음으로 파일 업로드용 위젯을 볼 수 있습니다(이 경우 이미지 업로드에 사용됨). 파일 업로더를 만드는 것이 얼마나 쉬운지 알아보세요.

st.image는 사용자가 업로드한 이미지를 표시하는 데 사용됩니다.

그런 다음 선택 상자(st.selectbox) 위젯을 사용하여 생성된 다양한 형식을 선택할 수 있는 드롭다운이 있습니다.

이제 두 개의 버튼(st.button 및 st.download_button)이 있는 것을 볼 수 있습니다. 둘 다 동일하지만 편의성이 가장 중요합니다.

st.button은 여기에서 이미지 변환에 사용한 버튼 위젯을 표시합니다.

st.download_button은 사용자가 앱에서 파일을 직접 다운로드해야 할 때 유용합니다.

Streamlit은 다양한 목적에 맞는 다양한 요소와 위젯을 제공합니다.

이제 이 웹앱을 사용해 보려면 필수 라이브러리를 설치해야 합니다.

pip install streamlit pillow

이미지 변환 기능은 다음과 같습니다.

from PIL import Image
import io

# Function to convert image format
def convert_img_format(image_file, frmat):
    with Image.open(image_file) as img:
        output_img = io.BytesIO()
        img.save(output_img, format=frmat.upper())
        output_img.seek(0)
        return output_img

다음 명령을 사용하여 앱을 실행하세요.

streamlit run <script_name>.py

실제 스크립트 이름으로 바꾸세요.


지금은 그게 다입니다.
계속 코딩하세요✌✌

위 내용은 Streamlit을 사용하면 Webapp을 만드는 것이 매우 쉽습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.