Maison >développement back-end >Tutoriel Python >Créer une application Web est si FACILE avec Streamlit

Créer une application Web est si FACILE avec Streamlit

DDD
DDDoriginal
2024-10-23 21:25:021021parcourir

Making a Webapp is so EASY with Streamlit

Streamlit est plutôt populaire parmi les data scientists car vous n'avez pas besoin de connaissances frontend en général.

Ils fournissent des éléments et des widgets simples et faciles à implémenter sans écrire beaucoup de code.

J'ai utilisé Streamlit plusieurs fois dans mes projets ML/AI, et l'expérience a été formidable. Vous pouvez vous concentrer davantage sur l'écriture de la logique, et la partie frontend (conception, mise en page, etc.) est très bien gérée par streamlit.

J'ai créé une webapp de démonstration en utilisant streamlit et Python pour que vous puissiez comprendre ce que je dis.

Application Web

Cette application Web consiste à convertir un format d'image en un autre format, par exemple, si votre image est au format PNG, vous pouvez la convertir en image JPEG.

Le code suivant constitue l'interface utilisateur de la webapp.

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!")

Vous avez maintenant déjà une brève idée de ce que fait cette webapp. Nous pouvons directement passer à la discussion des composants utilisés dans ce code.

Au début, vous pouvez voir des éléments de page comme st.title et st.write qui sont utilisés respectivement pour définir le titre de la page et afficher le texte sur la page.

Ensuite, vous pouvez voir un widget pour télécharger un fichier (dans ce cas, utilisé pour télécharger une image). Découvrez à quel point il est facile de créer un téléchargeur de fichiers.

st.image est utilisé pour afficher l'image téléchargée par l'utilisateur.

Ensuite, nous avons une liste déroulante pour sélectionner une variété de formats qui est créée à l'aide d'un widget selectbox (st.selectbox).

Maintenant, vous pouvez voir que nous avons deux boutons (st.button et st.download_button). Ils sont tous les deux identiques mais c'est une question de commodité.

Le st.button affiche un widget de bouton que nous avons utilisé ici pour la conversion d'images.

Le st.download_button le rend utile lorsque l'utilisateur doit télécharger directement le fichier depuis l'application.

Streamlit fournit de nombreux éléments et widgets à des fins différentes.

Maintenant, si vous souhaitez essayer cette webapp, vous devez installer les bibliothèques requises :

pip install streamlit pillow

Voici la fonction de conversion d'image :

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

Exécutez l'application à l'aide de la commande suivante :

streamlit run <script_name>.py

Remplacez par le nom réel du script.


C'est tout pour le moment.
Continuez à coder✌✌

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn