cllatser 6a7bab8416 Correction of grammatical and spelling errors in spanish readme. (#2130) 1 gadu atpakaļ
..
README.md 6a7bab8416 Correction of grammatical and spelling errors in spanish readme. (#2130) 1 gadu atpakaļ

README.md

+ ¿Buscas a Pynecone? Estas en el repositorio correcto. Pynecone ha sido renomabrado a Reflex. +
Reflex Logo Reflex Logo
### **✨ Aplicaciones web potentes y perzonalizables utilizando solo Python. Lanza tu aplicación en segundos. ✨** [![PyPI version](https://badge.fury.io/py/reflex.svg)](https://badge.fury.io/py/reflex) ![tests](https://github.com/pynecone-io/pynecone/actions/workflows/integration.yml/badge.svg) ![versions](https://img.shields.io/pypi/pyversions/reflex.svg) [![Documentaiton](https://img.shields.io/badge/Documentation%20-Introduction%20-%20%23007ec6)](https://reflex.dev/docs/getting-started/introduction) [![Discord](https://img.shields.io/discord/1029853095527727165?color=%237289da&label=Discord)](https://discord.gg/T5WSbC2YtQ)

English | 简体中文 | 繁體中文 | Türkçe | हिंदी | Português (Brasil) | Italiano | Español

⚙️ Instalación

Abre un terminal e instala reflex (Requiere Python 3.7+):

pip install reflex

🥳 Crea tu primer aplicación

Al instalar reflex tambien se instalará la herramienta de linea de comandos reflex.

Comprueba que la instalación fué exitosa creando un nuevo proyecto. (Reemplaza my_app_name con el nombre de tu proyecto):

mkdir my_app_name
cd my_app_name
reflex init

Esto inicializará la plantilla de la aplicación en tu nuevo directorio.

Puedes iniciar la aplicación en modo desarrollador:

reflex run

You should see your app running at http://localhost:3000.

Now you can modify the source code in my_app_name/my_app_name.py. Reflex has fast refreshes so you can see your changes instantly when you save your code.

🫧 Ejemplo de una Aplicación

Miremos un ejemplo: crear un UI de generación de imágenes usando DALL·E. Para simplicidad, usaremos el API de OpenAI , pero también pudes usar un modelo ML local.

 

 

Aqui esta el codigo completo para crear esto. ¡Todo esta hecho un solo archivo de Python!

import reflex as rx
import openai

openai.api_key = "YOUR_API_KEY"

class State(rx.State):
    """The app state."""
    prompt = ""
    image_url = ""
    processing = False
    complete = False

    def get_image(self):
        """Get the image from the prompt."""
        if self.prompt == "":
            return rx.window_alert("Prompt Empty")

        self.processing, self.complete = True, False
        yield
        response = openai.Image.create(prompt=self.prompt, n=1, size="1024x1024")
        self.image_url = response["data"][0]["url"]
        self.processing, self.complete = False, True
        

def index():
    return rx.center(
        rx.vstack(
            rx.heading("DALL·E"),
            rx.input(placeholder="Enter a prompt", on_blur=State.set_prompt),
            rx.button(
                "Generate Image",
                on_click=State.get_image,
                is_loading=State.processing,
                width="100%",
            ),
            rx.cond(
                State.complete,
                     rx.image(
                         src=State.image_url,
                         height="25em",
                         width="25em",
                    )
            ),
            padding="2em",
            shadow="lg",
            border_radius="lg",
        ),
        width="100%",
        height="100vh",
    )

# Add state and page to the app.
app = rx.App()
app.add_page(index, title="reflex:DALL·E")
app.compile()

Repasemos esto.

Reflex UI

Comenzemos con el interfaz de usario (UI).

def index():
    return rx.center(
        ...
    )

Esta función index define el frontend de la aplicación.

Usamos diferentes componentes como center, vstack, input, y button para crear el frontend. Los componentes pueden ser anidados dentro de cada uno para crear un disposición complejo. Tambien puedes usar keyword args para estilizarlos con el poder completo de CSS.

Reflex viene con mas de 60+ componentes incorporados para ayudarte comenzar. Continuamos agregando mas componentes, y es facil de crear tus propios componentes.

State

Reflex representa tu UI com una función de tu estado (State).

class State(rx.State):
    """The app state."""
    prompt = ""
    image_url = ""
    processing = False
    complete = False

El estado (state) define todas las variables (vars) en una aplicación que pueden cambiar y las funciones que las cambian.

Aquí el estado se compone de un prompt y de un image_url. También están los booleanos processing y complete para poder indicar cuándo mostrar el progreso circular y la imagen.

Event Handlers

def get_image(self):
    """Get the image from the prompt."""
    if self.prompt == "":
        return rx.window_alert("Prompt Empty")

    self.processing, self.complete = True, False
    yield
    response = openai.Image.create(prompt=self.prompt, n=1, size="1024x1024")
    self.image_url = response["data"][0]["url"]
    self.processing, self.complete = False, True

Dentro del estado, definos funciones que se llaman 'event handlers' que cambian los 'state vars'. Event handlers son la manera que podemos modificar el 'state' en Reflex. Pueden ser activadas en respuesta a las acciones del usuario, como seleccionando un botón or escribiendo dentro de un 'text box'. Estas acciones se llaman 'events'.

Nuestra aplicación DALL·E. tiene un event handler, get_image que recibe esta imagen del OpenAI API. Usando yield en medio de un event handler causara que el UI se actualize. Por lo demás, el UI se actualizara al fin de el event handler.

Routing

Al fin, vamos a definir nuestro app.

app = rx.App()

Agregamos una página desde la raíz (root) de la aplicación hasta al componente de índice. También agregaremos un título que aparece en la pestaña de vista previa de la página o en la pestaña del navegador web.

app.add_page(index, title="DALL-E")
app.compile()

Puedes crear un app con multiples paginas al agregar mas paginas como esta.

📑 Recursos

📑 [Docs](https://reflex.dev/docs/getting-started/introduction)   |   🗞️ [Blog](https://reflex.dev/blog)   |   📱 [Biblioteca de Componentes](https://reflex.dev/docs/library)   |   🖼️ [Galería](https://reflex.dev/docs/gallery)   |   🛸 [Hospedaje](https://reflex.dev/docs/hosting/deploy)  

✅ Estatus

Reflex lanzo en Diciembre 2022 con el nombre Pynecone.

Desde Julio 2023, estamos en el estatus de Beta Publica.

  • :white_check_mark: Alfa Publico: Cualquiera puede instalar y utilizar Reflex. Puede que haya problemas, pero estamos trabajando para resolverlos.
  • :large_orange_diamond: Beta Publica: Suficientemente estable para casos de uso no empresariales.
  • Betea Publica de Alojamiento: Opcionalmente, lanza y hospeda tus aplicaciónes en Reflex!
  • Publico: Reflex está listo para la producción.

¡Reflex tiene nuevos lanzamientos y funciones cada semana! Asedurate de darnos una :star: estrella y :eyes: revisa este repositorio para estar al día.

Contribuyendo

¡Agradecemos contribuciones de cualquier tamaño! Abajo hay algunas buenas formas de comenzar en la comunidad Reflex.

  • Únete a nuestro Discord: Nuestro Discord es el mejor lugar para obtener ayuda en su proyecto Reflex y discutir cómo puedes contribuir.
  • Discusiones de GitHub: Una excelente manera de hablar sobre las características que deseas agregar o cosas que son confusas o que necesitan aclaración.
  • GitHub Issues: These are an excellent way to report bugs. Additionally, you can try and solve an existing issue and submit a PR.

Buscamos colaboradores, sin importar su nivel de habilidad o experiencia.

Licencia

Reflex es de código abierto y tiene la licencia Apache License 2.0.