AI prompts
base on Curso para aprender desarrollo frontend Web con Python puro desde cero. Elaborado durante las emisiones en directo desde Twitch de MoureDev. # Python Web
[![Python](https://img.shields.io/badge/Python-3.11+-yellow?style=for-the-badge&logo=python&logoColor=white&labelColor=101010)](https://python.org)
[![Reflex](https://img.shields.io/badge/Reflex-0.4.5+-5646ED?style=for-the-badge&logo=reflex&logoColor=white&labelColor=101010)](https://reflex.dev)
## Curso de 13 horas en vídeo para aprender desarrollo web con Python puro y Reflex desde cero.
![](./Images/header.jpg)
### Proyecto realizado durante emisiones en directo desde [Twitch](https://twitch.tv/mouredev)
> ##### Si consideras útil el curso, apóyalo haciendo "★ Star" en el repositorio. ¡Gracias!
## Sobre el curso: muy importante
Desde la versión 0.4.0, Reflex utiliza [Radix](https://www.radix-ui.com/) (en vez de [Chakra](https://chakra-ui.com/)) como sistema de componentes de UI. Ten en cuenta la versión que usas del framework, ya que algunos elementos han podido cambiar ligeramente. Te recomiendo que revises el [código](./link_bio) del proyecto original actualizado. A partir de la versión 0.4.0, todos los componentes de Chakra estarán en `rx.chakra`.
Ejemplo:
```
import reflex as rx
rx.button() # Ahora este será el botón de Radix
rx.chakra.button() # Anterior botón de Chakra
```
Aquí tienes [un artículo](https://reflex.dev/blog/2024-02-16-reflex-v0.4.0) con toda la información sobre la nueva versión.
## Curso de Python Web: Tutorial en vídeo
<a href="https://youtu.be/n2YrGsXJC6Y"><img src="http://i3.ytimg.com/vi/n2YrGsXJC6Y/maxresdefault.jpg" style="height: 50%; width:50%;"/></a>
- [Curso de Python Web](https://youtu.be/n2YrGsXJC6Y)
- [Lección 1 - Introducción](https://youtu.be/n2YrGsXJC6Y&t=272)
- [Lección 2 - Características](https://youtu.be/n2YrGsXJC6Y&t=1147)
- [Lección 3 - Instalación](https://youtu.be/n2YrGsXJC6Y&t=1551)
- [Lección 4 - Primeros pasos](https://youtu.be/n2YrGsXJC6Y&t=3043)
- [Lección 5 - Fundamentos](https://youtu.be/n2YrGsXJC6Y&t=3442)
- [Lección 6 - Hola mundo](https://youtu.be/n2YrGsXJC6Y&t=4259)
- [Lección 7 - Componentes](https://youtu.be/n2YrGsXJC6Y&t=4593)
- [Lección 8 - Maquetación](https://youtu.be/n2YrGsXJC6Y&t=6805)
- [Lección 9 - Estilos](https://youtu.be/n2YrGsXJC6Y&t=9190)
- [Lección 10 - Colores e iconos](https://youtu.be/n2YrGsXJC6Y&t=13807)
- [Lección 11 - Fuentes](https://youtu.be/n2YrGsXJC6Y&t=15124)
- [Lección 12 - Imágenes](https://youtu.be/n2YrGsXJC6Y&t=16249)
- [Lección 13 - Fuentes remotas](https://youtu.be/n2YrGsXJC6Y&t=17505)
- [Lección 14 - Diseño responsive](https://youtu.be/n2YrGsXJC6Y&t=18225)
- [Lección 15 - Accesibilidad](https://youtu.be/n2YrGsXJC6Y&t=19058)
- [Lección 16 - Despliegue](https://youtu.be/n2YrGsXJC6Y&t=19283)
- [Próximos pasos](https://youtu.be/n2YrGsXJC6Y&t=20892)
> Tienes un canal llamado **"python"** en el servidor de **[Discord](https://mouredev.com/discord)** de la comunidad para preguntar, compartir y ayudar.
## Curso de Python Web Avanzado: Tutorial en vídeo
<a href="https://youtu.be/bNy8OZJfA6I"><img src="http://i3.ytimg.com/vi/bNy8OZJfA6I/maxresdefault.jpg" style="height: 50%; width:50%;"/></a>
- [Curso de Python Web avanzado](https://youtu.be/bNy8OZJfA6I)
- [Lección 1 - Refactorización](https://youtu.be/bNy8OZJfA6I&t=212)
- [Lección 2 - Actualización datos](https://youtu.be/bNy8OZJfA6I&t=716)
- [Lección 3 - Router](https://youtu.be/bNy8OZJfA6I&t=1181)
- [Lección 4 - Componentes React](https://youtu.be/bNy8OZJfA6I&t=2945)
- [Lección 5 - Hosting nativo](https://youtu.be/bNy8OZJfA6I&t=3843)
- [Lección 6 - Backend](https://youtu.be/bNy8OZJfA6I&t=4032)
- [Lección 7 - Docker](https://youtu.be/bNy8OZJfA6I&t=4789)
- [Lección 8 - CORS](https://youtu.be/bNy8OZJfA6I&t=6801)
- [Lección 9 - GitHub Actions](https://youtu.be/bNy8OZJfA6I&t=7344)
- [Lección 10 - Infraestructura](https://youtu.be/bNy8OZJfA6I&t=8013)
- [Lección 11 - API](https://youtu.be/bNy8OZJfA6I&t=8234)
- [Lección 12 - Estados](https://youtu.be/bNy8OZJfA6I&t=8768)
- [Lección 13 - Integración API](https://youtu.be/bNy8OZJfA6I&t=9190)
- [Lección 14 - Datos en tiempo real](https://youtu.be/bNy8OZJfA6I&t=12429)
- [Lección 15 - Supabase y PostgreSQL](https://youtu.be/bNy8OZJfA6I&t=13743)
- [Lección 16 - JSON serializable](https://youtu.be/bNy8OZJfA6I&t=15853)
- [Lección 17 - Base de datos](https://youtu.be/bNy8OZJfA6I&t=16693)
- [Lección 18 - Feature flags](https://youtu.be/bNy8OZJfA6I&t=18045)
- [Lección 19 - Query PostgreSQL](https://youtu.be/bNy8OZJfA6I&t=19002)
- [Lección 20 - Cálculo de fechas](https://youtu.be/bNy8OZJfA6I&t=19275)
- [Lección 21 - Migración RadixUI](https://youtu.be/bNy8OZJfA6I&t=21284)
- [Lección 22 - Carga de datos](https://youtu.be/bNy8OZJfA6I&t=22745)
- [Lección 23 - Cliente / Servidor](https://youtu.be/bNy8OZJfA6I&t=23061)
- [Lección 24 - Animaciones](https://youtu.be/bNy8OZJfA6I&t=23611)
- [Lección 25 - Otras características](https://youtu.be/bNy8OZJfA6I&t=23877)
- [Próximos pasos](https://youtu.be/bNy8OZJfA6I&t=24438)
## Proyecto
<a href="https://moure.dev"><img src="./Images/web.png" style="height: 50%; width:50%;"/></a>
<a href="./link_bio"><img src="./Images/web.gif" style="height: 50%; width:50%;"/></a>
Durante el curso aprenderemos desarrollo web con Python puro utilizando el framework [Reflex](https://github.com/reflex-dev/reflex). Realizaremos un proyecto práctico que consistirá en desarrollar y publicar mi nueva web de links [moure.dev](https://moure.dev/) (añadiéndole nuevas funcionalidades).
Todo el código está disponible para que cualquiera pueda usarlo.
### 💻 [Accede al código del proyecto](./link_bio)
## Tutorial extra en vídeo (+3 horas)
<a href="https://youtu.be/h8Tn0ITRoQs"><img src="http://i3.ytimg.com/vi/h8Tn0ITRoQs/maxresdefault.jpg" style="height: 50%; width:50%;"/></a>
Proyecto práctico extra de código libre que consistirá en desarrollar y publicar la web del [Calendario de aDEViento](https://adviento.dev/) de la comunidad. Una activdad donde repartimos cursos y libros sobre programación en Navidad.
### 💻 [Accede al código del proyecto extra](https://github.com/mouredev/adeviento-web)
## Otros proyectos creadas con Reflex
Estas son otras webs de código libre que he desarrollado para que puedas consultar su código y funcionalidades.
[![Curso Python](https://img.shields.io/github/stars/mouredev/adeviento-web?label=Calendario%20de%20aDEViento&style=social)](https://github.com/mouredev/adeviento-web)
[![Curso Python](https://img.shields.io/github/stars/mouredev/retos-programacion-web?label=Retos%20de%20programación&style=social)](https://github.com/mouredev/retos-programacion-web)
[![Curso Python](https://img.shields.io/github/stars/mouredev/hola-mundo-day-web?label=Hola%20Mundo%20day&style=social)](https://github.com/mouredev/hola-mundo-day-web)
[![Curso Python](https://img.shields.io/github/stars/mouredev/portafolio-template?label=Portafolio&style=social)](https://github.com/mouredev/portafolio-template)
## Información importante y preguntas frecuentes
Todo el contenido se ha creado en directo desde [Twitch](https://www.twitch.tv/mouredev), y en este repositorio podrás encontrar las clases en vídeo, el código programado, enlaces de interés y la información relevante.
* Es un curso desde cero y no necesitas conocimientos previos sobre desarrollo web.
* Recuerda que he creado en el [Discord](https://discord.gg/mouredev) un canal "🐍python" para que puedas comentar lo que quieras.
## Enlaces de interés
* [Web oficial de Python](https://www.python.org/)
* [Web oficial de Reflex](https://reflex.dev/)
* [Documentación oficial de Reflex](https://reflex.dev/docs/)
* [Repositorio en GitHub de Reflex](https://github.com/reflex-dev/reflex)
* [Visual Studio Code](https://vscode.dev/)
* [Documentación CSS](https://www.w3schools.com/css/)
* [Curso de CSS](https://web.dev/learn/css/)
* [Chakra UI](https://chakra-ui.com/)
* [Google Fonts](https://fonts.google.com/)
* [Font Awesome](https://fontawesome.com/)
* [Vercel](https://vercel.com/)
* [Radix UI](https://www.radix-ui.com/)
* [Ant Design](https://ant.design/)
* [Railway](https://railway.app/)
* [Twitch API](https://dev.twitch.tv/docs/api/)
* [Supabase](https://supabase.com/)
* [ConfigCat](https://configcat.com/)
## Curso de Python desde cero
### Aprende Python desde sus fundamentos
<a href="https://github.com/mouredev/hello-python"><img src="https://raw.githubusercontent.com/mouredev/Hello-Python/main/Images/header.jpg"/></a>
Si quieres aprender desde cero, tienes gratis todos los tutoriales que he creado. Más de 44 horas desde fundamentos, frontend, backend o integración con IA.
[![Curso Python](https://img.shields.io/github/stars/mouredev/hello-python?label=Curso%20Python%20desde%20cero&style=social)](https://github.com/mouredev/hello-python)
## Únete al campus de programación de la comunidad
![https://mouredev.pro](./Images/pro.jpg)
#### Te presento [mouredev pro](https://mouredev.pro), mi proyecto más importante para ayudarte a estudiar programación y desarrollo de software de manera diferente.
> **¿Buscas un extra?** Aquí encontrarás mis cursos editados por lecciones individuales, para avanzar a tu ritmo y guardar el progreso. También dispondrás de ejercicios y correcciones, test para validar tus conocimientos, examen y certificado público de finalización, soporte, foro de estudiantes, reunionnes grupales, cursos exclusivos y mucho más.
>
> Entra en **[mouredev.pro](https://mouredev.pro)** y utiliza el cupón **"PRO"** con un 10% de descuento en tu primera suscripción.
## ![https://mouredev.com](https://raw.githubusercontent.com/mouredev/mouredev/master/mouredev_emote.png) Hola, mi nombre es Brais Moure.
### Freelance full-stack iOS & Android engineer
[![YouTube Channel Subscribers](https://img.shields.io/youtube/channel/subscribers/UCxPD7bsocoAMq8Dj18kmGyQ?style=social)](https://youtube.com/mouredevapps?sub_confirmation=1)
[![Twitch Status](https://img.shields.io/twitch/status/mouredev?style=social)](https://twitch.com/mouredev)
[![Discord](https://img.shields.io/discord/729672926432985098?style=social&label=Discord&logo=discord)](https://mouredev.com/discord)
[![Twitter Follow](https://img.shields.io/twitter/follow/mouredev?style=social)](https://twitter.com/mouredev)
![GitHub Followers](https://img.shields.io/github/followers/mouredev?style=social)
![GitHub Followers](https://img.shields.io/github/stars/mouredev?style=social)
Soy ingeniero de software desde 2010. Desde 2018 combino mi trabajo desarrollando Apps con la creación de contenido formativo sobre programación y tecnología en diferentes redes sociales como **[@mouredev](https://moure.dev)**.
Si quieres unirte a nuestra comunidad de desarrollo, aprender programación, mejorar tus habilidades y ayudar a la continuidad del proyecto, puedes encontrarnos en:
[![Twitch](https://img.shields.io/badge/Twitch-Programación_en_directo-9146FF?style=for-the-badge&logo=twitch&logoColor=white&labelColor=101010)](https://twitch.tv/mouredev)
[![Discord](https://img.shields.io/badge/Discord-Servidor_de_la_comunidad-5865F2?style=for-the-badge&logo=discord&logoColor=white&labelColor=101010)](https://mouredev.com/discord) [![Pro](https://img.shields.io/badge/Cursos-mouredev.pro-FF5500?style=for-the-badge&logo=gnometerminal&logoColor=white&labelColor=101010)](https://moure.dev)
[![Link](https://img.shields.io/badge/Links_de_interés-moure.dev-14a1f0?style=for-the-badge&logo=Linktree&logoColor=white&labelColor=101010)](https://moure.dev) [![Web](https://img.shields.io/badge/GitHub-MoureDev-087ec4?style=for-the-badge&logo=github&logoColor=white&labelColor=101010)](https://github.com/mouredev)
", Assign "at most 3 tags" to the expected json: {"id":"3026","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"