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
Libérer: 2024-10-23 21:25:02
original
1013 Les gens l'ont consulté

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!")
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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

streamlit run <script_name>.py
Copier après la connexion

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!

source:dev.to
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal